when: event: [push, manual] branch: [dev, stage, main] labels: platform: arm64 steps: - name: build-push image: docker environment: REGISTRY_HOST: from_secret: registry_host commands: - if [ "$CI_COMMIT_BRANCH" = "main" ]; then export TAG=arm; else export TAG=${CI_COMMIT_BRANCH}-arm; fi - export BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ) - | docker build -f Dockerfile \ --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA \ --label org.opencontainers.image.revision=$CI_COMMIT_SHA \ --label org.opencontainers.image.created=$BUILD_DATE \ --label org.opencontainers.image.source=$CI_REPO_URL \ -t $REGISTRY_HOST/loader:$TAG . - docker push $REGISTRY_HOST/loader:$TAG - docker save $REGISTRY_HOST/loader:$TAG -o loader-image.tar volumes: - /var/run/docker.sock:/var/run/docker.sock - name: publish-artifact image: python:3.11-slim commands: - pip install --no-cache-dir boto3==1.40.9 cryptography==44.0.2 requests==2.32.4 - | if [ "$CI_COMMIT_BRANCH" = "main" ]; then export PUBLISH_DEV_STAGE=main export TAG=arm else export PUBLISH_DEV_STAGE=$CI_COMMIT_BRANCH export TAG=${CI_COMMIT_BRANCH}-arm fi - python scripts/publish_artifact.py --file loader-image.tar --resource-name loader --dev-stage "$PUBLISH_DEV_STAGE" --architecture arm64 --version "$CI_COMMIT_SHA"