--- name: CI on: [push] jobs: build: name: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: "1.20" - name: Install dependencies run: go mod download - name: Build binary run: make - name: Run and make request run: | ./bin/casecmp -p 8080 & curl --silent --retry 10 --retry-delay 1 --retry-connrefused \ http://localhost:8080/ helm-lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/setup-helm@v3 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Lint chart run: helm lint chart - name: Template chart run: helm template chart release-please: name: Release Please runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' outputs: release_created: ${{ steps.release-please.outputs.release_created }} tag_name: ${{ steps.release-please.outputs.tag_name }} # e.g. v1.0.0 version: ${{ steps.release-please.outputs.version }} # e.g. 1.0.0 all: ${{ toJSON(steps.release-please.outputs) }} steps: - uses: google-github-actions/release-please-action@v3 id: release-please with: command: manifest release: runs-on: ubuntu-latest needs: [build, helm-lint, release-please] if: needs.release-please.outputs.release_created steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - run: git fetch --force --tags - name: Set up QEMU uses: docker/setup-qemu-action@v2 - uses: docker/setup-buildx-action@v2 - name: Docker Login uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: actions/setup-go@v4 with: go-version: "1.20" - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --rm-dist env: REGISTRY: ghcr.io IMAGE: ${{ github.repository }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}