Upgrage Go dependencies (#93) #72
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
tags: | |
- v* | |
permissions: | |
contents: write | |
env: | |
IMAGE: paskalmaksim/aks-node-termination-handler:${{github.ref_name}} | |
IMAGE_LATEST: paskalmaksim/aks-node-termination-handler:latest | |
# IMAGE: paskalmaksim/aks-node-termination-handler:test-${{ github.run_id }} | |
# IMAGE_LATEST: paskalmaksim/aks-node-termination-handler:test-latest | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.23' | |
- name: Remove Git Tags with Charts | |
run: git tag -d $(git tag -l "helm-chart-*") | |
- name: Run GoReleaser | |
uses: goreleaser/goreleaser-action@v5 | |
with: | |
distribution: goreleaser | |
version: latest | |
# args: build --clean --skip=validate --snapshot | |
args: release --clean | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- run: cp Dockerfile ./dist/aks-node-termination-handler_linux_amd64_v1/Dockerfile | |
- run: cp Dockerfile ./dist/aks-node-termination-handler_linux_arm64/Dockerfile | |
- run: cp Dockerfile.windows ./dist/aks-node-termination-handler_windows_amd64_v1/Dockerfile | |
- run: tar -cvf release.tar ./dist | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: release | |
retention-days: 1 | |
path: release.tar | |
publish-linux-amd64: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- uses: actions/download-artifact@v4 | |
- run: tar xvf ./release/release.tar | |
- run: "docker build --pull --push --platform linux/amd64 -t ${{ env.IMAGE }}-linux-amd64 ." | |
working-directory: ./dist/aks-node-termination-handler_linux_amd64_v1 | |
publish-linux-arm64: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- uses: docker/setup-qemu-action@v2 | |
- uses: docker/setup-buildx-action@v2 | |
- uses: actions/download-artifact@v4 | |
- run: tar xvf ./release/release.tar | |
- run: "docker build --pull --push --platform linux/arm64 -t ${{ env.IMAGE }}-linux-arm64 ." | |
working-directory: ./dist/aks-node-termination-handler_linux_arm64 | |
publish-windows-amd64: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
windows-version: [ 'ltsc2019', 'ltsc2022' ] | |
needs: build | |
steps: | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- uses: actions/download-artifact@v4 | |
- run: tar xvf ./release/release.tar | |
- run: "docker build --build-arg WINDOWS_VERSION=${{ matrix.windows-version }} --pull --platform windows/amd64 -t ${{ env.IMAGE }}-windows-${{ matrix.windows-version }}-amd64 ." | |
working-directory: ./dist/aks-node-termination-handler_windows_amd64_v1 | |
- run: docker push ${{ env.IMAGE }}-windows-${{ matrix.windows-version }}-amd64 | |
publish-manifest: | |
runs-on: ubuntu-latest | |
needs: [publish-linux-amd64, publish-linux-arm64, publish-windows-amd64] | |
steps: | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- run: docker manifest create ${{ env.IMAGE }} ${{ env.IMAGE }}-linux-amd64 ${{ env.IMAGE }}-linux-arm64 ${{ env.IMAGE }}-windows-ltsc2022-amd64 | |
- run: docker manifest push ${{ env.IMAGE }} | |
- run: docker manifest create ${{ env.IMAGE_LATEST }} ${{ env.IMAGE }}-linux-amd64 ${{ env.IMAGE }}-linux-arm64 ${{ env.IMAGE }}-windows-ltsc2022-amd64 | |
- run: docker manifest push ${{ env.IMAGE_LATEST }} | |
- run: docker manifest create ${{ env.IMAGE_LATEST }}-ltsc2019 ${{ env.IMAGE }}-linux-amd64 ${{ env.IMAGE }}-linux-arm64 ${{ env.IMAGE }}-windows-ltsc2019-amd64 | |
- run: docker manifest push ${{ env.IMAGE_LATEST }}-ltsc2019 |