name: Go on: push: branches: ["master"] pull_request: branches: ["master"] permissions: contents: read actions: write packages: write attestations: write id-token: write jobs: build: runs-on: alrest-x if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} steps: - uses: actions/checkout@v4 with: persist-credentials: false fetch-tags: true fetch-depth: 0 - name: build essential run: | sudo apt-get update sudo apt-get install -y build-essential - name: Set up Homebrew uses: Homebrew/actions/setup-homebrew@master - name: Setup Homebrew cellar cache uses: actions/cache@v4 with: path: | /home/linuxbrew/.linuxbrew/Cellar /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/etc /home/linuxbrew/.linuxbrew/include /home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/opt /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/share /home/linuxbrew/.linuxbrew/var key: ${{ runner.os }}-go-homebrew-cellar-${{ hashFiles('go.sum') }} restore-keys: | ${{ runner.os }}-go-homebrew-cellar- - name: Install Brew dependencies run: | brew bundle - name: Setup Golang caches uses: actions/cache@v4 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-golang- - name: Build run: go build ./... - name: Test run: go test ./... - name: Log into registry if: github.event_name != 'pull_request' uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: registry: ghcr.io username: xe password: ${{ secrets.GHCR_PUSH }} - name: Build docker images if: github.event_name != 'pull_request' run: go tool yeet - name: "Cut release if 'Release-Status: cut' in commit message" if: "${{ github.ref == 'refs/heads/master' && contains(github.event.head_commit.message, 'Release-Status: cut') }}" uses: benc-uk/workflow-dispatch@e2e5e9a103e331dad343f381a29e654aea3cf8fc # v1.2.4 with: workflow: "release.yaml"