central-controller.yaml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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: Set up GCloud CLI
  17. uses: google-github-actions/setup-gcloud@v2
  18. - name: Docker Auth
  19. run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
  20. # - name: Setup Miniconda
  21. # uses: conda-incubator/setup-miniconda@v3
  22. # with:
  23. # miniconda-version: latest
  24. # activate-environment: central_controller
  25. # - name: Conda Environment Cache
  26. # id: cache
  27. # uses: actions/cache@v4
  28. # with:
  29. # path: ${{ env.CONDA }}/envs
  30. # key: ${{ runner.os }}-${{ runner.arch }}-${{ github.ref_name }}-conda-${{ hashFiles('environment.yml') }}
  31. # - name: Update Conda Environment
  32. # if: steps.cache.outputs.cache-hit != 'true'
  33. # run: |
  34. # source ~/miniconda3/etc/profile.d/conda.sh
  35. # conda env update --file environment.yml
  36. # - name: Build
  37. # run: |
  38. # source ~/miniconda3/etc/profile.d/conda.sh
  39. # conda activate central_controller
  40. # cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DZT1_CENTRAL_CONTROLLER=1
  41. # cmake --build build/ --target all -j4 --verbose
  42. # - name: SelfTest
  43. # run: |
  44. # ./build/zerotier-selftest
  45. - name: Get branch name and sanitize
  46. id: branch
  47. run: |
  48. BRANCH_NAME="${GITHUB_REF##*/}"
  49. SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
  50. echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
  51. - name: Get short git commit SHA
  52. id: sha
  53. run: |
  54. calculatedSha=$(git rev-parse --short ${{ github.sha }})
  55. echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
  56. - name: Build
  57. run: |
  58. 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 .
  59. - name: GCP Auth
  60. uses: google-github-actions/auth@v2
  61. with:
  62. credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
  63. - name: Build and push Docker Image
  64. run: |
  65. docker push us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-${{ runner.arch }}
  66. multi-arch-docker:
  67. runs-on: gha-runner-x64
  68. needs: central_controller
  69. steps:
  70. - name: Checkout
  71. uses: actions/checkout@v4
  72. - name: GCP Auth
  73. uses: google-github-actions/auth@v2
  74. with:
  75. credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
  76. - name: Set up GCloud CLI
  77. uses: google-github-actions/setup-gcloud@v2
  78. - name: Docker Auth
  79. run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
  80. - name: Get branch name and sanitize
  81. id: branch
  82. run: |
  83. BRANCH_NAME="${GITHUB_REF##*/}"
  84. SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
  85. echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
  86. - name: Get short git commit SHA
  87. id: sha
  88. run: |
  89. calculatedSha=$(git rev-parse --short ${{ github.sha }})
  90. echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
  91. - name: Create and push multi-arch manifest
  92. run: |
  93. docker manifest create us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }} \
  94. --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-X64 \
  95. --amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-ARM64
  96. docker manifest push us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}