Skip to content

Commit 4f159ef

Browse files
Merge pull request #1644 from basetenlabs/bump-version-0.9.90
Release 0.9.90
2 parents 5675b99 + f03c513 commit 4f159ef

30 files changed

+405
-388
lines changed

.github/actions/detect-versions/action.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build and Push Truss Base Images (if needed)
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
new_base_image_version:
7+
required: true
8+
type: string
9+
build_base_images:
10+
required: true
11+
type: string
12+
secrets:
13+
DOCKERHUB_USERNAME:
14+
required: true
15+
DOCKERHUB_TOKEN:
16+
required: true
17+
18+
jobs:
19+
build-and-push-truss-base-images-if-needed:
20+
if: ${{ inputs.build_base_images == 'true' }}
21+
runs-on: ubuntu-22.04
22+
strategy:
23+
matrix:
24+
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
25+
use_gpu: ["y", "n"]
26+
steps:
27+
- uses: docker/setup-buildx-action@v3
28+
- uses: docker/login-action@v3
29+
with:
30+
username: ${{ secrets.DOCKERHUB_USERNAME }}
31+
password: ${{ secrets.DOCKERHUB_TOKEN }}
32+
- uses: actions/checkout@v4
33+
- uses: ./.github/actions/setup-python/
34+
- run: poetry install --with=dev,dev-server --extras=all
35+
- shell: bash
36+
run: |
37+
poetry run bin/generate_base_images.py \
38+
--use-gpu ${{ matrix.use_gpu }} \
39+
--python-version ${{ matrix.python_version }} \
40+
--version-tag ${{ inputs.new_base_image_version }} \
41+
--skip-login --push
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Detect Version Changed
2+
3+
on:
4+
workflow_call:
5+
outputs:
6+
version_changed:
7+
value: ${{ jobs.detect-version-changed.outputs.version_changed }}
8+
new_version:
9+
value: ${{ jobs.detect-version-changed.outputs.new_version }}
10+
new_base_image_version:
11+
value: ${{ jobs.detect-version-changed.outputs.new_base_image_version }}
12+
build_base_images:
13+
value: ${{ jobs.detect-version-changed.outputs.build_base_images }}
14+
release_version:
15+
value: ${{ jobs.detect-version-changed.outputs.release_version }}
16+
is_prerelease_version:
17+
value: ${{ jobs.detect-version-changed.outputs.is_prerelease_version }}
18+
19+
jobs:
20+
detect-version-changed:
21+
runs-on: ubuntu-22.04
22+
outputs:
23+
version_changed: ${{ steps.versions.outputs.version_changed }}
24+
new_version: ${{ steps.versions.outputs.new_version }}
25+
new_base_image_version: ${{ steps.versions.outputs.new_base_image_version }}
26+
build_base_images: ${{ steps.versions.outputs.build_base_images }}
27+
release_version: ${{ steps.versions.outputs.release_version }}
28+
is_prerelease_version: ${{ steps.versions.outputs.is_prerelease_version }}
29+
steps:
30+
- uses: actions/checkout@v4
31+
with:
32+
token: ${{ secrets.BASETENBOT_GITHUB_TOKEN }}
33+
fetch-depth: 2
34+
35+
- run: curl -sSL https://install.python-poetry.org | python3 -
36+
shell: bash
37+
38+
- id: versions
39+
shell: bash
40+
run: |
41+
NEW_VERSION=$(poetry version | awk '{print $2}')
42+
NEW_BASE_IMAGE_VERSION=$(grep TRUSS_BASE_IMAGE_VERSION_TAG truss/contexts/image_builder/util.py | cut -d'=' -f2 | cut -d'"' -f2)
43+
44+
git checkout HEAD^1 -- pyproject.toml truss/contexts/image_builder/util.py
45+
OLD_VERSION=$(poetry version | awk '{print $2}')
46+
OLD_BASE_IMAGE_VERSION=$(grep TRUSS_BASE_IMAGE_VERSION_TAG truss/contexts/image_builder/util.py | cut -d'=' -f2 | cut -d'"' -f2)
47+
48+
git checkout HEAD -- pyproject.toml truss/contexts/image_builder/util.py
49+
50+
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
51+
echo "new_base_image_version=$NEW_BASE_IMAGE_VERSION" >> $GITHUB_OUTPUT
52+
53+
if [[ "$NEW_VERSION" != "$OLD_VERSION" ]]; then
54+
echo "version_changed=true" >> $GITHUB_OUTPUT
55+
if [[ "$NEW_VERSION" == *"dev"* ]]; then
56+
echo "release_version=false" >> $GITHUB_OUTPUT
57+
else
58+
echo "release_version=true" >> $GITHUB_OUTPUT
59+
if [[ "$NEW_VERSION" == *"rc"* ]]; then
60+
echo "is_prerelease_version=true" >> $GITHUB_OUTPUT
61+
else
62+
echo "is_prerelease_version=false" >> $GITHUB_OUTPUT
63+
fi
64+
fi
65+
else
66+
echo "version_changed=false" >> $GITHUB_OUTPUT
67+
fi
68+
69+
if [[ "$NEW_BASE_IMAGE_VERSION" != "$OLD_BASE_IMAGE_VERSION" ]]; then
70+
echo "build_base_images=true" >> $GITHUB_OUTPUT
71+
else
72+
echo "build_base_images=false" >> $GITHUB_OUTPUT
73+
fi

.github/workflows/build-context-builder-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
6161
- name: Docker meta
6262
id: meta
63-
uses: docker/metadata-action@v4
63+
uses: docker/metadata-action@v5
6464
with:
6565
images: baseten/truss-context-builder
6666

.github/workflows/integration-tests.yml

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -20,57 +20,20 @@ concurrency:
2020

2121
jobs:
2222
detect-version-changed:
23-
runs-on: ubuntu-22.04
24-
outputs:
25-
version_changed: ${{ steps.versions.outputs.version_changed }}
26-
new_version: ${{ steps.versions.outputs.new_version }}
27-
new_base_image_version: ${{ steps.versions.outputs.new_base_image_version }}
28-
build_base_images: ${{ steps.versions.outputs.build_base_images }}
29-
release_version: ${{ steps.versions.outputs.release_version }}
30-
is_prerelease_version: ${{ steps.versions.outputs.is_prerelease_version }}
31-
steps:
32-
- uses: actions/checkout@v4
33-
with:
34-
# We need to use a different github token because GITHUB_TOKEN cannot trigger a workflow from another
35-
token: ${{secrets.BASETENBOT_GITHUB_TOKEN}}
36-
fetch-depth: 2
37-
- uses: ./.github/actions/detect-versions/
38-
id: versions
23+
uses: ./.github/workflows/_detect_version_changed_shared.yml
24+
secrets: inherit
3925

40-
build-and-push-truss-base-images-if-needed:
41-
needs: [detect-version-changed]
42-
if: needs.detect-version-changed.outputs.build_base_images == 'true'
43-
runs-on: ubuntu-22.04
44-
strategy:
45-
matrix:
46-
python_version: ["3.8", "3.9", "3.10", "3.11"]
47-
use_gpu: ["y", "n"]
48-
job_type: ["server"]
49-
steps:
50-
- name: Set up Docker Buildx
51-
uses: docker/setup-buildx-action@v3
52-
53-
- name: Login to Docker Hub
54-
uses: docker/login-action@v3
55-
with:
56-
username: ${{ secrets.DOCKERHUB_USERNAME }}
57-
password: ${{ secrets.DOCKERHUB_TOKEN }}
58-
59-
- uses: actions/checkout@v4
60-
- uses: ./.github/actions/setup-python/
61-
- run: poetry install --with=dev,dev-server --extras=all
62-
- shell: bash
63-
run: |
64-
poetry run bin/generate_base_images.py \
65-
--use-gpu ${{ matrix.use_gpu }} \
66-
--python-version ${{ matrix.python_version }} \
67-
--job-type ${{ matrix.job_type }} \
68-
--version-tag ${{ needs.detect-version-changed.outputs.new_base_image_version }} \
69-
--skip-login --push
26+
build-truss-server-base-images-if-needed:
27+
needs: detect-version-changed
28+
uses: ./.github/workflows/_build_truss_server_base_images_if_needed_shared.yml
29+
with:
30+
new_base_image_version: ${{ needs.detect-version-changed.outputs.new_base_image_version }}
31+
build_base_images: ${{ needs.detect-version-changed.outputs.build_base_images }}
32+
secrets: inherit
7033

7134
integration-tests:
72-
needs: [detect-version-changed, build-and-push-truss-base-images-if-needed]
73-
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') }}
35+
needs: [detect-version-changed, build-truss-server-base-images-if-needed]
36+
if: ${{ !failure() && !cancelled() && (needs.build-truss-server-base-images-if-needed.result == 'success' || needs.build-truss-server-base-images-if-needed.result == 'skipped') }}
7437
uses: ./.github/workflows/_integration_test_shared.yml
7538
with:
7639
run_only_integration: ${{ inputs.run_only_integration }}

.github/workflows/main.yml

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,57 +12,20 @@ concurrency:
1212

1313
jobs:
1414
detect-version-changed:
15-
runs-on: ubuntu-22.04
16-
outputs:
17-
version_changed: ${{ steps.versions.outputs.version_changed }}
18-
new_version: ${{ steps.versions.outputs.new_version }}
19-
new_base_image_version: ${{ steps.versions.outputs.new_base_image_version }}
20-
build_base_images: ${{ steps.versions.outputs.build_base_images }}
21-
release_version: ${{ steps.versions.outputs.release_version }}
22-
is_prerelease_version: ${{ steps.versions.outputs.is_prerelease_version }}
23-
steps:
24-
- uses: actions/checkout@v4
25-
with:
26-
# We need to use a different github token because GITHUB_TOKEN cannot trigger a workflow from another
27-
token: ${{secrets.BASETENBOT_GITHUB_TOKEN}}
28-
fetch-depth: 2
29-
- uses: ./.github/actions/detect-versions/
30-
id: versions
31-
32-
build-and-push-truss-base-images-if-needed:
33-
needs: [detect-version-changed]
34-
if: needs.detect-version-changed.outputs.build_base_images == 'true'
35-
runs-on: ubuntu-22.04
36-
strategy:
37-
matrix:
38-
python_version: ["3.8", "3.9", "3.10", "3.11"]
39-
use_gpu: ["y", "n"]
40-
job_type: ["server"]
41-
steps:
42-
- name: Set up Docker Buildx
43-
uses: docker/setup-buildx-action@v3
44-
45-
- name: Login to Docker Hub
46-
uses: docker/login-action@v3
47-
with:
48-
username: ${{ secrets.DOCKERHUB_USERNAME }}
49-
password: ${{ secrets.DOCKERHUB_TOKEN }}
15+
uses: ./.github/workflows/_detect_version_changed_shared.yml
16+
secrets: inherit
5017

51-
- uses: actions/checkout@v4
52-
- uses: ./.github/actions/setup-python/
53-
- run: poetry install --with=dev,dev-server --extras=all
54-
- shell: bash
55-
run: |
56-
poetry run bin/generate_base_images.py \
57-
--use-gpu ${{ matrix.use_gpu }} \
58-
--python-version ${{ matrix.python_version }} \
59-
--job-type ${{ matrix.job_type }} \
60-
--version-tag ${{ needs.detect-version-changed.outputs.new_base_image_version }} \
61-
--skip-login --push
18+
build-truss-server-base-images-if-needed:
19+
needs: detect-version-changed
20+
uses: ./.github/workflows/_build_truss_server_base_images_if_needed_shared.yml
21+
with:
22+
new_base_image_version: ${{ needs.detect-version-changed.outputs.new_base_image_version }}
23+
build_base_images: ${{ needs.detect-version-changed.outputs.build_base_images }}
24+
secrets: inherit
6225

6326
all-tests:
64-
needs: [detect-version-changed, build-and-push-truss-base-images-if-needed]
65-
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') }}
27+
needs: [detect-version-changed, build-truss-server-base-images-if-needed]
28+
if: ${{ !failure() && !cancelled() && (needs.build-truss-server-base-images-if-needed.result == 'success' || needs.build-truss-server-base-images-if-needed.result == 'skipped') }}
6629
uses: ./.github/workflows/_integration_test_shared.yml
6730
with:
6831
run_only_integration: false

.github/workflows/release.yml

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,8 @@ concurrency:
1111

1212
jobs:
1313
detect-version-changed:
14-
runs-on: ubuntu-22.04
15-
outputs:
16-
version_changed: ${{ steps.versions.outputs.version_changed }}
17-
new_version: ${{ steps.versions.outputs.new_version }}
18-
new_base_image_version: ${{ steps.versions.outputs.new_base_image_version }}
19-
build_base_images: ${{ steps.versions.outputs.build_base_images }}
20-
release_version: ${{ steps.versions.outputs.release_version }}
21-
is_prerelease_version: ${{ steps.versions.outputs.is_prerelease_version }}
22-
steps:
23-
- uses: actions/checkout@v4
24-
with:
25-
# We need to use a different github token because GITHUB_TOKEN cannot trigger a workflow from another
26-
token: ${{secrets.BASETENBOT_GITHUB_TOKEN}}
27-
fetch-depth: 2
28-
- uses: ./.github/actions/detect-versions/
29-
id: versions
14+
uses: ./.github/workflows/_detect_version_changed_shared.yml
15+
secrets: inherit
3016

3117
build-n-push-context-builder-image:
3218
needs: [detect-version-changed]
@@ -46,7 +32,7 @@ jobs:
4632

4733
- name: Docker meta
4834
id: meta
49-
uses: docker/metadata-action@v4
35+
uses: docker/metadata-action@v5
5036
with:
5137
images: baseten/truss-context-builder
5238

0 commit comments

Comments
 (0)