name: Build binaries on: push: branches: - main pull_request: workflow_dispatch: # This allows a subsequently queued workflow run to interrupt previous runs concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}} cancel-in-progress: true defaults: run: # fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference shell: bash permissions: contents: read jobs: build-binaries: runs-on: ubuntu-latest steps: - name: Install Go uses: actions/setup-go@v2.1.3 with: go-version: 1.19.10 - name: Checkout Code uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v2 - name: JS Dependency Cache id: js-cache uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v2 with: path: | **/node_modules # Use a separate cache for this from other JS jobs since we run the # webpack steps and will have more to cache. key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-node_modules- - name: Go Cache id: go-cache uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v2 with: # In order: # * Module download cache # * Build cache (Linux) # * Build cache (Mac) # * Build cache (Windows) path: | ~/go/pkg/mod ~/.cache/go-build ~/Library/Caches/go-build %LocalAppData%\go-build key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Install JS Dependencies if: steps.js-cache.outputs.cache-hit != 'true' run: make deps-js - name: Install Go Dependencies if: steps.go-cache.outputs.cache-hit != 'true' run: make deps-go - name: Generate static files run: | export PATH=$PATH:~/go/bin make generate - name: Build binaries run: make - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v2 with: name: build path: build/