Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restore mononoke getdeps integration tests #951

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

ahornby
Copy link
Contributor

@ahornby ahornby commented Sep 18, 2024

Summary:
Bring back mononoke getdeps integration tests. This is a refesh of the previously working export-D34186407 branch from 2022

Main changes since:

  • depend on restored sapling manifest from previous commit
  • bring back selected manifests needed by mononoke that were deleted in D51869247. I added the sqlite binary packages from this to the sqlite3 manifest rather than bring back the sqllite3-bin manifest
  • add manifests for new tools used: ripgrep, git-lfs, and zstd cli (we already had the zstd libs)
  • fix a few test expecations that where too closely tied to git cli or TLS version etc (ubuntu 22.04 is on older version)
  • getdeps MakefileBuilder.run_tests() improvements
    • fix error status reporting, was not failing if tests failed
    • pass of --num-jobs to tests to stop it OOMing my machine
    • pass of --filter to tests so can iterate on one test more easily

Can to iterate local execution for one test with:

python3 ./build/fbcode_builder/getdeps.py test --num-jobs 4 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration --retry 0 --filter server/test-gettreepack.t

Test Plan:

Setup a local ubuntu 22.04 toolbox with:

toolbox create --distro ubuntu --release 22.04
toolbox enter ubuntu-toolbox-22.04
sudo apt update
sudo apt install g++ libssl-dev pkg-config
sudo locale-gen en_US.UTF-8
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build dependencies:

python3 ./build/fbcode_builder/getdeps.py install-system-deps --recursive mononoke_integration
python3 ./build/fbcode_builder/getdeps.py build --allow-system-packages --no-facebook-internal --src-dir=. --no-tests sapling
python3 ./build/fbcode_builder/getdeps.py build --allow-system-packages --no-facebook-internal --src-dir=. --no-tests mononoke

then test locally:

./build/fbcode_builder/getdeps.py build --no-deps --num-jobs 16 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration
./build/fbcode_builder/getdeps.py test --num-jobs 6 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration

Generate the github actions yaml

./build/fbcode_builder/getdeps.py generate-github-actions --allow-system-packages --test --os-type linux --job-file-prefix mononoke-integration_ --job-name-prefix "Mononoke Integration " --output-dir .github/workflows mononoke_integration --num-jobs 4

Stack created with Sapling. Best reviewed with ReviewStack.

@facebook-github-bot
Copy link
Contributor

@facebook-github-bot has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

ahornby and others added 2 commits September 18, 2024 20:51
Summary:
Bring a manifest for sapling back so we can test eden fs and mononoke. Their tests need the hg binary and thus a sapling manifest to depend upon

How:
 * started with backout of 73302ef and badf6d1

Test Plan:

Setup a local ubuntu 22.04 toolbox with:
```
toolbox create --distro ubuntu --release 22.04
toolbox enter ubuntu-toolbox-22.04
sudo apt update
sudo apt install g++ libssl-dev pkg-config
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

Build locally with: `python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. sapling  --project-install-prefix sapling:/usr/local`

Test locally with: `python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. sapling  --project-install-prefix sapling:/usr/local`

Generate github actions with:

`./build/fbcode_builder/getdeps.py --allow-system-packages generate-github-actions --free-up-disk --os-type=linux --src-dir=. --output-dir=.github/workflows --job-name "Sapling CLI Getdeps " --job-file-prefix=sapling-cli-getdeps_ sapling`

CI
Summary:
Bring back mononoke getdeps integration tests.  This is a refesh of the previously working export-D34186407 branch from 2022

Main changes since:
 * depend on restored sapling manifest from previous commit
 * bring back selected manifests needed by mononoke that were deleted in D51869247. I added the sqlite binary packages from this to the sqlite3 manifest rather than bring back the sqllite3-bin manifest
 * add manifests for new tools used: ripgrep, git-lfs, and zstd cli (we already had the zstd libs)
 * fix a few test expecations that where too closely tied to git cli or TLS version etc (ubuntu 22.04 is on older version)
 * getdeps MakefileBuilder.run_tests() improvements
   * fix error status reporting, was not failing if tests failed
   * pass of --num-jobs to tests to stop it OOMing my machine
   * pass of --filter to tests so can iterate on one test more easily

Can to iterate local execution for one test with:
```
python3 ./build/fbcode_builder/getdeps.py test --num-jobs 4 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration --retry 0 --filter server/test-gettreepack.t
```

Test Plan:

Setup a local ubuntu 22.04 toolbox with:
```
toolbox create --distro ubuntu --release 22.04
toolbox enter ubuntu-toolbox-22.04
sudo apt update
sudo apt install g++ libssl-dev pkg-config
sudo locale-gen en_US.UTF-8
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

Build dependencies:
```
python3 ./build/fbcode_builder/getdeps.py install-system-deps --recursive mononoke_integration
python3 ./build/fbcode_builder/getdeps.py build --allow-system-packages --no-facebook-internal --src-dir=. --no-tests sapling
python3 ./build/fbcode_builder/getdeps.py build --allow-system-packages --no-facebook-internal --src-dir=. --no-tests mononoke
```

then test locally:
```
./build/fbcode_builder/getdeps.py build --no-deps --num-jobs 16 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration
./build/fbcode_builder/getdeps.py test --num-jobs 6 --allow-system-packages --no-facebook-internal --src-dir=. mononoke_integration
```

Generate the github actions yaml
```
./build/fbcode_builder/getdeps.py generate-github-actions --allow-system-packages --test --os-type linux --job-file-prefix mononoke-integration_ --job-name-prefix "Mononoke Integration " --output-dir .github/workflows mononoke_integration --num-jobs 4
```
@facebook-github-bot
Copy link
Contributor

@ahornby has updated the pull request. You must reimport the pull request before landing.

@facebook-github-bot
Copy link
Contributor

@facebook-github-bot has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants