central-controller.yaml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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: Setup Miniconda
  17. # uses: conda-incubator/setup-miniconda@v3
  18. # with:
  19. # miniconda-version: latest
  20. # activate-environment: central_controller
  21. # - name: Conda Environment Cache
  22. # id: cache
  23. # uses: actions/cache@v4
  24. # with:
  25. # path: ${{ env.CONDA }}/envs
  26. # key: ${{ runner.os }}-${{ runner.arch }}-${{ github.ref_name }}-conda-${{ hashFiles('environment.yml') }}
  27. # - name: Update Conda Environment
  28. # if: steps.cache.outputs.cache-hit != 'true'
  29. # run: |
  30. # source ~/miniconda3/etc/profile.d/conda.sh
  31. # conda env update --file environment.yml
  32. # - name: Build
  33. # run: |
  34. # source ~/miniconda3/etc/profile.d/conda.sh
  35. # conda activate central_controller
  36. # cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DZT1_CENTRAL_CONTROLLER=1
  37. # cmake --build build/ --target all -j4 --verbose
  38. # - name: SelfTest
  39. # run: |
  40. # ./build/zerotier-selftest
  41. - name: Get branch name and sanitize
  42. id: branch
  43. run: |
  44. BRANCH_NAME="${GITHUB_REF##*/}"
  45. SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
  46. echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
  47. - name: Get short git commit SHA
  48. id: sha
  49. run: |
  50. calculatedSha=$(git rev-parse --short ${{ github.sha }})
  51. echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
  52. - name: Build
  53. run: |
  54. 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 .
  55. - name: GCP Auth
  56. uses: google-github-actions/auth@v2
  57. with:
  58. credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
  59. - name: Set up GCloud CLI
  60. uses: google-github-actions/setup-gcloud@v2
  61. - name: Docker Auth
  62. run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
  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 }}