-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
80264a5
commit 3342657
Showing
4 changed files
with
117 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
on: | ||
workflow_call: | ||
|
||
|
||
jobs: | ||
detect-version-changed: | ||
runs-on: ubuntu-20.04 | ||
outputs: | ||
version_changed: ${{ steps.versions.outputs.version_changed }} | ||
new_version: ${{ steps.versions.outputs.new_version }} | ||
new_base_image_version: ${{ steps.versions.outputs.new_base_image_version }} | ||
build_base_images: ${{ steps.versions.outputs.build_base_images }} | ||
release_version: ${{ steps.versions.outputs.release_version }} | ||
is_prerelease_version: ${{ steps.versions.outputs.is_prerelease_version }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
# We need to use a different github token because GITHUB_TOKEN cannot trigger a workflow from another | ||
token: ${{secrets.BASETENBOT_GITHUB_TOKEN}} | ||
fetch-depth: 2 | ||
- uses: ./.github/actions/detect-versions/ | ||
id: versions | ||
|
||
build-and-push-truss-base-images-if-needed: | ||
needs: [detect-version-changed] | ||
if: needs.detect-version-changed.outputs.build_base_images == 'true' | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
python_version: ["3.8", "3.9", "3.10", "3.11"] | ||
use_gpu: ["y", "n"] | ||
job_type: ["server"] | ||
steps: | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
|
||
|
||
- name: Login to Docker Hub | ||
uses: docker/login-action@v1 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
|
||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/setup-python/ | ||
- run: poetry install | ||
- shell: bash | ||
run: | | ||
poetry run bin/generate_base_images.py \ | ||
--use-gpu ${{ matrix.use_gpu }} \ | ||
--python-version ${{ matrix.python_version }} \ | ||
--job-type ${{ matrix.job_type }} \ | ||
--version-tag ${{ needs.detect-version-changed.outputs.new_base_image_version }} \ | ||
--skip-login --push | ||
integration-tests: | ||
needs: [build-and-push-truss-base-images-if-needed] | ||
if: ${{ !failure() && !cancelled() && (needs.build-and-push-truss-base-images-if-needed.result == 'success' || needs.build-and-push-truss-base-images-if-needed.result == 'skipped') }} | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
split_group: [ "1", "2", "3", "4", "5" ] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/setup-python/ | ||
- run: poetry install | ||
- run: poetry run pytest truss/tests --durations=0 -m 'integration' --splits 5 --group ${{ matrix.split_group }} -k "not test_requirements_pydantic[1]" | ||
|
||
# Running `test_requirements_pydantic[1]` started failing when running together with the other tests. | ||
# We could pin down the issue to the fact that the built image had v2 installed, despite v1 in `requirements.txt` | ||
# The test passes locally and when running in its own env, suggesting that there is a bug in docker caching / hash | ||
# computation that makes the test falsely run with the wrong version in the image. As a stop gap solution, separating | ||
# this particular test in its own job made it pass again. | ||
integration-tests-pydantic-v1: | ||
needs: [build-and-push-truss-base-images-if-needed] | ||
if: ${{ !failure() && !cancelled() && (needs.build-and-push-truss-base-images-if-needed.result == 'success' || needs.build-and-push-truss-base-images-if-needed.result == 'skipped') }} | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/setup-python/ | ||
- run: poetry install | ||
- run: poetry run pytest truss/tests/test_model_inference.py::test_requirements_pydantic[1] | ||
|
||
chain-integration-tests: | ||
needs: [build-and-push-truss-base-images-if-needed] | ||
if: ${{ !failure() && !cancelled() && (needs.build-and-push-truss-base-images-if-needed.result == 'success' || needs.build-and-push-truss-base-images-if-needed.result == 'skipped') }} | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
fail-fast: false | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/setup-python/ | ||
- run: poetry install | ||
- run: poetry run pytest truss-chains/tests -s --log-cli-level=INFO --durations=0 -m 'integration' | ||
|
||
outputs: | ||
version_changed: ${{ .outputs.version_changed }} | ||
new_version: ${{ .outputs.new_version }} | ||
new_base_image_version: ${{ .outputs.new_base_image_version }} | ||
build_base_images: ${{ .outputs.build_base_images }} | ||
release_version: ${{ .outputs.release_version }} | ||
is_prerelease_version: ${{ .outputs.is_prerelease_version }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters