renaming container artifacts and adding project linking stage
Some checks failed
CI / Rustfmt (push) Successful in 21s
CI / Clippy (push) Successful in 2m3s
CI / Cargo Audit & Deny (push) Successful in 34s
CI / Web Blocking Checks (push) Successful in 1m27s
CI / Security Blocking Checks (push) Successful in 15s
CI / Web Advisory Checks (push) Successful in 32s
CI / Security Advisory Checks (push) Successful in 1m25s
Publish Images / Resolve Publish Metadata (push) Successful in 1s
CI / Tests (push) Successful in 8m56s
Publish Images / Publish web (arm64) (push) Failing after 3m49s
Publish Images / Publish web (amd64) (push) Failing after 1m28s
Publish Images / Build Rust Bundles (amd64) (push) Failing after 12m21s
Publish Images / Build Rust Bundles (arm64) (push) Failing after 12m28s
Publish Images / Publish agent (amd64) (push) Has been skipped
Publish Images / Publish api (amd64) (push) Has been skipped
Publish Images / Publish agent (arm64) (push) Has been skipped
Publish Images / Publish api (arm64) (push) Has been skipped
Publish Images / Publish executor (amd64) (push) Has been skipped
Publish Images / Publish executor (arm64) (push) Has been skipped
Publish Images / Publish notifier (amd64) (push) Has been skipped
Publish Images / Publish notifier (arm64) (push) Has been skipped
Publish Images / Publish manifest attune/api (push) Has been skipped
Publish Images / Publish manifest attune/executor (push) Has been skipped
Publish Images / Publish manifest attune/agent (push) Has been skipped
Publish Images / Publish manifest attune/notifier (push) Has been skipped
Publish Images / Publish manifest attune/web (push) Has been skipped

This commit is contained in:
2026-03-25 12:39:47 -05:00
parent 542e72a454
commit 0264a66b5a

View File

@@ -33,7 +33,8 @@ env:
REGISTRY_HOST: ${{ vars.CLUSTER_GITEA_HOST }} REGISTRY_HOST: ${{ vars.CLUSTER_GITEA_HOST }}
REGISTRY_NAMESPACE: ${{ vars.CONTAINER_REGISTRY_NAMESPACE }} REGISTRY_NAMESPACE: ${{ vars.CONTAINER_REGISTRY_NAMESPACE }}
REGISTRY_PLAIN_HTTP: ${{ vars.CONTAINER_REGISTRY_INSECURE }} REGISTRY_PLAIN_HTTP: ${{ vars.CONTAINER_REGISTRY_INSECURE }}
ARTIFACT_REPOSITORY: attune-build-artifacts REPOSITORY_NAME: attune
ARTIFACT_REPOSITORY: attune/build-artifacts
GNU_GLIBC_VERSION: "2.28" GNU_GLIBC_VERSION: "2.28"
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0 CARGO_INCREMENTAL: 0
@@ -332,6 +333,29 @@ jobs:
--artifact-type application/vnd.attune.rust-binaries.v1 \ --artifact-type application/vnd.attune.rust-binaries.v1 \
"${artifact_file}:application/vnd.attune.rust-binaries.layer.v1.tar+gzip" "${artifact_file}:application/vnd.attune.rust-binaries.layer.v1.tar+gzip"
- name: Link binary bundle package to repository
shell: bash
env:
REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
run: |
set -euo pipefail
api_base="${{ github.server_url }}/api/v1"
package_name="${ARTIFACT_REPOSITORY}"
status_code="$(curl -sS -o /tmp/package-link-response.txt -w '%{http_code}' -X POST \
-u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" \
"${api_base}/packages/${{ needs.metadata.outputs.namespace }}/container/${package_name}/-/link/${REPOSITORY_NAME}")"
case "${status_code}" in
200|201|204|409)
;;
*)
cat /tmp/package-link-response.txt
exit 1
;;
esac
publish-rust-images: publish-rust-images:
name: Publish ${{ matrix.image.name }} (${{ matrix.arch }}) name: Publish ${{ matrix.image.name }} (${{ matrix.arch }})
runs-on: ${{ matrix.runner_label }} runs-on: ${{ matrix.runner_label }}
@@ -354,7 +378,7 @@ jobs:
platform: linux/amd64 platform: linux/amd64
image: image:
name: api name: api
repository: attune-api repository: attune/api
source_path: bin/attune-api source_path: bin/attune-api
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: amd64 - arch: amd64
@@ -362,7 +386,7 @@ jobs:
platform: linux/amd64 platform: linux/amd64
image: image:
name: executor name: executor
repository: attune-executor repository: attune/executor
source_path: bin/attune-executor source_path: bin/attune-executor
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: amd64 - arch: amd64
@@ -370,7 +394,7 @@ jobs:
platform: linux/amd64 platform: linux/amd64
image: image:
name: notifier name: notifier
repository: attune-notifier repository: attune/notifier
source_path: bin/attune-notifier source_path: bin/attune-notifier
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: amd64 - arch: amd64
@@ -378,7 +402,7 @@ jobs:
platform: linux/amd64 platform: linux/amd64
image: image:
name: agent name: agent
repository: attune-agent repository: attune/agent
source_path: agent/attune-agent source_path: agent/attune-agent
dockerfile: docker/Dockerfile.agent-package dockerfile: docker/Dockerfile.agent-package
- arch: arm64 - arch: arm64
@@ -386,7 +410,7 @@ jobs:
platform: linux/arm64 platform: linux/arm64
image: image:
name: api name: api
repository: attune-api repository: attune/api
source_path: bin/attune-api source_path: bin/attune-api
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: arm64 - arch: arm64
@@ -394,7 +418,7 @@ jobs:
platform: linux/arm64 platform: linux/arm64
image: image:
name: executor name: executor
repository: attune-executor repository: attune/executor
source_path: bin/attune-executor source_path: bin/attune-executor
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: arm64 - arch: arm64
@@ -402,7 +426,7 @@ jobs:
platform: linux/arm64 platform: linux/arm64
image: image:
name: notifier name: notifier
repository: attune-notifier repository: attune/notifier
source_path: bin/attune-notifier source_path: bin/attune-notifier
dockerfile: docker/Dockerfile.runtime dockerfile: docker/Dockerfile.runtime
- arch: arm64 - arch: arm64
@@ -410,7 +434,7 @@ jobs:
platform: linux/arm64 platform: linux/arm64
image: image:
name: agent name: agent
repository: attune-agent repository: attune/agent
source_path: agent/attune-agent source_path: agent/attune-agent
dockerfile: docker/Dockerfile.agent-package dockerfile: docker/Dockerfile.agent-package
steps: steps:
@@ -534,6 +558,29 @@ jobs:
"${build_cmd[@]}" "${build_cmd[@]}"
- name: Link container package to repository
shell: bash
env:
REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
run: |
set -euo pipefail
api_base="${{ github.server_url }}/api/v1"
package_name="${{ matrix.image.repository }}"
status_code="$(curl -sS -o /tmp/package-link-response.txt -w '%{http_code}' -X POST \
-u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" \
"${api_base}/packages/${{ needs.metadata.outputs.namespace }}/container/${package_name}/-/link/${REPOSITORY_NAME}")"
case "${status_code}" in
200|201|204|409)
;;
*)
cat /tmp/package-link-response.txt
exit 1
;;
esac
publish-web-images: publish-web-images:
name: Publish web (${{ matrix.arch }}) name: Publish web (${{ matrix.arch }})
runs-on: ${{ matrix.runner_label }} runs-on: ${{ matrix.runner_label }}
@@ -606,7 +653,7 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
image_ref="${{ needs.metadata.outputs.registry }}/${{ needs.metadata.outputs.namespace }}/attune-web:${{ needs.metadata.outputs.image_tag }}-${{ matrix.arch }}" image_ref="${{ needs.metadata.outputs.registry }}/${{ needs.metadata.outputs.namespace }}/attune/web:${{ needs.metadata.outputs.image_tag }}-${{ matrix.arch }}"
build_cmd=( build_cmd=(
docker buildx build docker buildx build
@@ -623,6 +670,28 @@ jobs:
"${build_cmd[@]}" "${build_cmd[@]}"
- name: Link web container package to repository
shell: bash
env:
REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
run: |
set -euo pipefail
api_base="${{ github.server_url }}/api/v1"
status_code="$(curl -sS -o /tmp/package-link-response.txt -w '%{http_code}' -X POST \
-u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" \
"${api_base}/packages/${{ needs.metadata.outputs.namespace }}/container/attune/web/-/link/${REPOSITORY_NAME}")"
case "${status_code}" in
200|201|204|409)
;;
*)
cat /tmp/package-link-response.txt
exit 1
;;
esac
publish-manifests: publish-manifests:
name: Publish manifest ${{ matrix.repository }} name: Publish manifest ${{ matrix.repository }}
runs-on: build-amd64 runs-on: build-amd64
@@ -637,11 +706,11 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
repository: repository:
- attune-api - attune/api
- attune-executor - attune/executor
- attune-notifier - attune/notifier
- attune-agent - attune/agent
- attune-web - attune/web
steps: steps:
- name: Configure OCI registry auth - name: Configure OCI registry auth
shell: bash shell: bash
@@ -678,9 +747,11 @@ jobs:
set -euo pipefail set -euo pipefail
image_base="${{ needs.metadata.outputs.registry }}/${{ needs.metadata.outputs.namespace }}/${{ matrix.repository }}" image_base="${{ needs.metadata.outputs.registry }}/${{ needs.metadata.outputs.namespace }}/${{ matrix.repository }}"
create_args=()
push_args=() push_args=()
if [ "${{ needs.metadata.outputs.registry_plain_http }}" = "true" ]; then if [ "${{ needs.metadata.outputs.registry_plain_http }}" = "true" ]; then
create_args+=(--insecure)
push_args+=(--insecure) push_args+=(--insecure)
fi fi
@@ -691,7 +762,7 @@ jobs:
arm64_ref="${image_base}:${{ needs.metadata.outputs.image_tag }}-arm64" arm64_ref="${image_base}:${{ needs.metadata.outputs.image_tag }}-arm64"
docker manifest rm "$manifest_ref" >/dev/null 2>&1 || true docker manifest rm "$manifest_ref" >/dev/null 2>&1 || true
docker manifest create "$manifest_ref" "$amd64_ref" "$arm64_ref" docker manifest create "${create_args[@]}" "$manifest_ref" "$amd64_ref" "$arm64_ref"
docker manifest annotate "$manifest_ref" "$amd64_ref" --os linux --arch amd64 docker manifest annotate "$manifest_ref" "$amd64_ref" --os linux --arch amd64
docker manifest annotate "$manifest_ref" "$arm64_ref" --os linux --arch arm64 docker manifest annotate "$manifest_ref" "$arm64_ref" --os linux --arch arm64
docker manifest push "${push_args[@]}" "$manifest_ref" docker manifest push "${push_args[@]}" "$manifest_ref"