From 92ad1cbfb42e35dff0bd5c03cb070dd4176b3f12 Mon Sep 17 00:00:00 2001 From: charlesgauthereau Date: Wed, 28 Jan 2026 22:59:35 +0100 Subject: [PATCH] chore(release): 1.0.4-rc.17 --- .github/workflows/docker.yml | 232 ++++++++++++++++++++++++++--------- CITATION.cff | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- 4 files changed, 175 insertions(+), 63 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 659067d..2f5b327 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -68,6 +68,131 @@ # push: true # tags: ${{ steps.set-tags.outputs.tags }} # target: ${{ inputs.target }} +# +#name: Docker Publish +# +#on: +# workflow_call: +# inputs: +# image_name: +# required: false +# type: string +# default: 'portabase/agent' +# add_latest: +# required: false +# type: boolean +# default: false +# target: +# required: false +# type: string +# default: 'prod' +# dockerfile: +# required: false +# type: string +# default: './docker/Dockerfile' +# secrets: +# DOCKER_USERNAME: +# required: true +# DOCKER_PASSWORD: +# required: true +# +#jobs: +# build-amd64: +# name: Build AMD64 Image +# runs-on: ubuntu-latest +# outputs: +# image: ${{ steps.set-job-output.outputs.image }} +# steps: +# - uses: actions/checkout@v4 +# +# - uses: docker/setup-buildx-action@v3 +# +# - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a +# with: +# username: ${{ secrets.DOCKER_USERNAME }} +# password: ${{ secrets.DOCKER_PASSWORD }} +# +# - name: Set AMD64 image tag +# id: set-tags +# run: | +# REF_NAME=${GITHUB_REF#refs/tags/} +# AMD64_IMAGE="${{ inputs.image_name }}:$REF_NAME-amd64" +# echo "amd64_image=$AMD64_IMAGE" >> $GITHUB_OUTPUT +# +# - name: Build and push AMD64 +# uses: docker/build-push-action@v6 +# with: +# context: . +# file: ${{ inputs.dockerfile }} +# platforms: linux/amd64 +# push: true +# tags: ${{ steps.set-tags.outputs.amd64_image }} +# target: ${{ inputs.target }} +# +# build-arm64: +# name: Build ARM64 Image +# runs-on: ubuntu-24.04-arm +# outputs: +# image: ${{ steps.set-job-output.outputs.image }} +# steps: +# - uses: actions/checkout@v4 +# +# - uses: docker/setup-buildx-action@v3 +# +# - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a +# with: +# username: ${{ secrets.DOCKER_USERNAME }} +# password: ${{ secrets.DOCKER_PASSWORD }} +# +# - name: Set ARM64 image tag +# id: set-tags +# run: | +# REF_NAME=${GITHUB_REF#refs/tags/} +# ARM64_IMAGE="${{ inputs.image_name }}:$REF_NAME-arm64" +# echo "arm64_image=$ARM64_IMAGE" >> $GITHUB_OUTPUT +# +# - name: Build and push ARM64 +# uses: docker/build-push-action@v6 +# with: +# context: . +# file: ${{ inputs.dockerfile }} +# platforms: linux/arm64 +# push: true +# tags: ${{ steps.set-tags.outputs.arm64_image }} +# target: ${{ inputs.target }} +# +# +# create-manifest: +# name: Create Multi-Arch Manifest +# runs-on: ubuntu-latest +# needs: +# - build-amd64 +# - build-arm64 +# steps: +# - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a +# with: +# username: ${{ secrets.DOCKER_USERNAME }} +# password: ${{ secrets.DOCKER_PASSWORD }} +# +# - name: Create Docker manifest +# run: | +# REF_NAME=${GITHUB_REF#refs/tags/} +# +# IMAGE="${{ inputs.image_name }}:$REF_NAME" +# AMD64_IMAGE="$IMAGE-amd64" +# ARM64_IMAGE="$IMAGE-arm64" +# +# echo "AMD64_IMAGE=$AMD64_IMAGE" +# echo "ARM64_IMAGE=$ARM64_IMAGE" +# +# docker manifest create $IMAGE $AMD64_IMAGE $ARM64_IMAGE +# docker manifest push $IMAGE +# +# if [ "${{ inputs.add_latest }}" = "true" ]; then +# docker manifest create ${{ inputs.image_name }}:latest $AMD64_IMAGE $ARM64_IMAGE +# docker manifest push ${{ inputs.image_name }}:latest +# fi + name: Docker Publish @@ -97,96 +222,83 @@ on: required: true jobs: - build-amd64: - name: Build AMD64 Image - runs-on: ubuntu-latest - outputs: - image: ${{ steps.set-job-output.outputs.image }} + build: + name: Build and push Docker images + runs-on: ${{ matrix.platform == 'linux/amd64' && 'ubuntu-latest' || matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' }} + strategy: + fail-fast: false + matrix: + platform: [linux/amd64, linux/arm64] steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 - - uses: docker/setup-buildx-action@v3 - - - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + - name: Login to Docker + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Set AMD64 image tag + - name: Set image tag id: set-tags run: | REF_NAME=${GITHUB_REF#refs/tags/} - AMD64_IMAGE="${{ inputs.image_name }}:$REF_NAME-amd64" - echo "amd64_image=$AMD64_IMAGE" >> $GITHUB_OUTPUT + if [ "${{ matrix.platform }}" = "linux/amd64" ]; then + IMAGE="${{ inputs.image_name }}:$REF_NAME-amd64" + else + IMAGE="${{ inputs.image_name }}:$REF_NAME-arm64" + fi + echo "image=$IMAGE" >> $GITHUB_OUTPUT - - name: Build and push AMD64 + - name: Build and push image uses: docker/build-push-action@v6 with: context: . file: ${{ inputs.dockerfile }} - platforms: linux/amd64 + platforms: ${{ matrix.platform }} push: true - tags: ${{ steps.set-tags.outputs.amd64_image }} + tags: ${{ steps.set-tags.outputs.image }} target: ${{ inputs.target }} - build-arm64: - name: Build ARM64 Image - runs-on: ubuntu-24.04-arm - outputs: - image: ${{ steps.set-job-output.outputs.image }} - steps: - - uses: actions/checkout@v4 + - name: Upload image tag for manifest + id: upload + run: echo "${{ steps.set-tags.outputs.image }}" > image.txt - - uses: docker/setup-buildx-action@v3 - - - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + - uses: actions/upload-artifact@v3 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Set ARM64 image tag - id: set-tags - run: | - REF_NAME=${GITHUB_REF#refs/tags/} - ARM64_IMAGE="${{ inputs.image_name }}:$REF_NAME-arm64" - echo "arm64_image=$ARM64_IMAGE" >> $GITHUB_OUTPUT - - - name: Build and push ARM64 - uses: docker/build-push-action@v6 - with: - context: . - file: ${{ inputs.dockerfile }} - platforms: linux/arm64 - push: true - tags: ${{ steps.set-tags.outputs.arm64_image }} - target: ${{ inputs.target }} - + name: image-${{ matrix.platform }} + path: image.txt create-manifest: - name: Create Multi-Arch Manifest + name: Create multi-arch Docker manifest runs-on: ubuntu-latest - needs: - - build-amd64 - - build-arm64 + needs: build steps: - - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + - uses: actions/download-artifact@v3 + with: + name: image-linux/amd64 + path: /tmp/digests + + - uses: actions/download-artifact@v3 + with: + name: image-linux/arm64 + path: /tmp/digests + + - name: Login to Docker + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Create Docker manifest + - name: Create and push manifest run: | + AMD64_IMAGE=$(cat /tmp/digests/image-linux/amd64/image.txt) + ARM64_IMAGE=$(cat /tmp/digests/image-linux/arm64/image.txt) REF_NAME=${GITHUB_REF#refs/tags/} - - IMAGE="${{ inputs.image_name }}:$REF_NAME" - AMD64_IMAGE="$IMAGE-amd64" - ARM64_IMAGE="$IMAGE-arm64" + MANIFEST_IMAGE="${{ inputs.image_name }}:$REF_NAME" - echo "AMD64_IMAGE=$AMD64_IMAGE" - echo "ARM64_IMAGE=$ARM64_IMAGE" - - docker manifest create $IMAGE $AMD64_IMAGE $ARM64_IMAGE - docker manifest push $IMAGE + docker manifest create $MANIFEST_IMAGE $AMD64_IMAGE $ARM64_IMAGE + docker manifest push $MANIFEST_IMAGE if [ "${{ inputs.add_latest }}" = "true" ]; then docker manifest create ${{ inputs.image_name }}:latest $AMD64_IMAGE $ARM64_IMAGE diff --git a/CITATION.cff b/CITATION.cff index b8899e1..444fd50 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -22,5 +22,5 @@ keywords: - self-hosted - portabase license: Apache-2.0 -version: 1.0.4-rc.16 +version: 1.0.4-rc.17 date-released: "2026-01-28" \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 40979e1..86de563 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1595,7 +1595,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portabase-agent" -version = "1.0.4-rc.15" +version = "1.0.4-rc.16" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 618a94e..60dec09 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "portabase-agent" -version = "1.0.4-rc.16" +version = "1.0.4-rc.17" edition = "2024" [dependencies]