# on: # workflow_dispatch: on: push: workflow_dispatch: jobs: central_controller: name: Central Controller Build strategy: matrix: runner: [gha-runner-x64, gha-runner-arm64] runs-on: ${{ matrix.runner }} steps: - name: checkout uses: actions/checkout@v4 - name: GCP Auth uses: google-github-actions/auth@v2 with: credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}} - name: Set up GCloud CLI uses: google-github-actions/setup-gcloud@v2 - name: Docker Auth run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet - name: Get branch name and sanitize id: branch run: | BRANCH_NAME="${GITHUB_REF##*/}" SANITIZED_BRANCH="${BRANCH_NAME//\//-}" echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT - name: Get short git commit SHA id: sha run: | calculatedSha=$(git rev-parse --short ${{ github.sha }}) echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV - name: Build & Push Docker Image run: | docker build -t us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-${{ runner.arch }} -f ext/central-controller-docker/Dockerfile.new . --push multi-arch-docker: runs-on: gha-runner-x64 needs: central_controller steps: - name: Checkout uses: actions/checkout@v4 - name: GCP Auth uses: google-github-actions/auth@v2 with: credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}} - name: Set up GCloud CLI uses: google-github-actions/setup-gcloud@v2 - name: Docker Auth run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet - name: Get branch name and sanitize id: branch run: | BRANCH_NAME="${GITHUB_REF##*/}" SANITIZED_BRANCH="${BRANCH_NAME//\//-}" echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT - name: Get short git commit SHA id: sha run: | calculatedSha=$(git rev-parse --short ${{ github.sha }}) echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV - name: Create and push multi-arch manifest run: | docker manifest create us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }} \ --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-X64 \ --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-ARM64 docker manifest push us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}