name: release on: push: tags: - "v*" permissions: contents: read packages: write id-token: write defaults: run: shell: bash jobs: release: runs-on: ubuntu-latest steps: - name: Clone the code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2 - name: Setup Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c #v6.4.0 with: go-version-file: go.mod - name: Set up Docker uses: docker/setup-docker-action@0234bb73ccb40f0c430b795634f9247e2b5c2d23 #v5.2.0 with: daemon-config: | { "features": { "containerd-snapshotter": true } } - name: Set up Docker Buildx uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 #v4.1.0 with: driver: docker - name: Login to GitHub Container Registry uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee #v4.2.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Prepare versions id: prep run: | IMG_TAG="${GITHUB_REF_NAME}" if [[ "${{ github.ref_type }}" == "tag" ]]; then HELM_VERSION=${GITHUB_REF_NAME#v} else HELM_VERSION="0.0.0-${GITHUB_REF_NAME}" fi echo "IMG_TAG=${IMG_TAG}" >> $GITHUB_OUTPUT echo "HELM_VERSION=${HELM_VERSION}" >> $GITHUB_OUTPUT - name: Build and push image run: | IMG_REF=$(make build-image-multiarch IMG_REPOSITORY=${{ github.repository_owner }}/netbird-operator IMG_TAG=${{ steps.prep.outputs.IMG_TAG }}) || exit 1 docker push ${IMG_REF} - name: Build and push Helm chart run: | helm package --app-version ${{ steps.prep.outputs.IMG_TAG }} --version ${{ steps.prep.outputs.HELM_VERSION }} charts/netbird-operator helm push netbird-operator-${{ steps.prep.outputs.HELM_VERSION }}.tgz oci://ghcr.io/${{ github.repository_owner }}/helm-charts