central-controller.yaml 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # on:
  2. # workflow_dispatch:
  3. on:
  4. push:
  5. workflow_dispatch:
  6. jobs:
  7. central_controller:
  8. name: Central Controller Build
  9. strategy:
  10. matrix:
  11. runner: [gha-runner-x64, gha-runner-arm64]
  12. runs-on: ${{ matrix.runner }}
  13. steps:
  14. - name: checkout
  15. uses: actions/checkout@v4
  16. - name: GCP Auth
  17. uses: google-github-actions/auth@v2
  18. with:
  19. credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
  20. - name: Set up GCloud CLI
  21. uses: google-github-actions/setup-gcloud@v2
  22. - name: Docker Auth
  23. run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
  24. - name: Get branch name and sanitize
  25. id: branch
  26. run: |
  27. BRANCH_NAME="${GITHUB_REF##*/}"
  28. SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
  29. echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
  30. - name: Get short git commit SHA
  31. id: sha
  32. run: |
  33. calculatedSha=$(git rev-parse --short ${{ github.sha }})
  34. echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
  35. - name: Build & Push Docker Image
  36. run: |
  37. 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 --provenance false . --push
  38. multi-arch-docker:
  39. runs-on: gha-runner-x64
  40. needs: central_controller
  41. steps:
  42. - name: Checkout
  43. uses: actions/checkout@v4
  44. - name: GCP Auth
  45. uses: google-github-actions/auth@v2
  46. with:
  47. credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
  48. - name: Set up GCloud CLI
  49. uses: google-github-actions/setup-gcloud@v2
  50. - name: Docker Auth
  51. run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
  52. - name: Get branch name and sanitize
  53. id: branch
  54. run: |
  55. BRANCH_NAME="${GITHUB_REF##*/}"
  56. SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
  57. echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
  58. - name: Get short git commit SHA
  59. id: sha
  60. run: |
  61. calculatedSha=$(git rev-parse --short ${{ github.sha }})
  62. echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
  63. - name: Create and push multi-arch manifest
  64. run: |
  65. docker manifest create us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }} \
  66. --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-X64 \
  67. --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-ARM64
  68. docker manifest push us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}