'name': 'build' 'env': 'GO_VERSION': '1.14' 'NODE_VERSION': '14' 'on': 'push': 'branches': - '*' 'tags': - 'v*' 'pull_request': 'jobs': 'test': 'runs-on': '${{ matrix.os }}' 'env': 'GO111MODULE': 'on' 'GOPROXY': 'https://goproxy.io' 'strategy': 'fail-fast': false 'matrix': 'os': - 'ubuntu-latest' - 'macOS-latest' - 'windows-latest' 'steps': - 'name': 'Checkout' 'uses': 'actions/checkout@v2' 'with': 'fetch-depth': 0 - 'name': 'Set up Go' 'uses': 'actions/setup-go@v2' 'with': 'go-version': '${{ env.GO_VERSION }}' - 'name': 'Set up Node' 'uses': 'actions/setup-node@v1' 'with': 'node-version': '${{ env.NODE_VERSION }}' - 'name': 'Set up Go modules cache' 'uses': 'actions/cache@v2' 'with': 'path': '~/go/pkg/mod' 'key': "${{ runner.os }}-go-${{ hashFiles('go.sum') }}" 'restore-keys': '${{ runner.os }}-go-' - 'name': 'Get npm cache directory' 'id': 'npm-cache' 'run': 'echo "::set-output name=dir::$(npm config get cache)"' - 'name': 'Set up npm cache' 'uses': 'actions/cache@v2' 'with': 'path': '${{ steps.npm-cache.outputs.dir }}' 'key': "${{ runner.os }}-node-${{ hashFiles('client/package-lock.json') }}" 'restore-keys': '${{ runner.os }}-node-' - 'name': 'Run make ci' 'shell': 'bash' 'run': 'make ci' - 'name': 'Upload coverage' 'uses': 'codecov/codecov-action@v1' 'if': "success() && matrix.os == 'ubuntu-latest'" 'with': 'token': '${{ secrets.CODECOV_TOKEN }}' 'file': './coverage.txt' 'app': 'runs-on': 'ubuntu-latest' 'needs': 'test' 'steps': - 'name': 'Checkout' 'uses': 'actions/checkout@v2' 'with': 'fetch-depth': 0 - 'name': 'Set up Go' 'uses': 'actions/setup-go@v2' 'with': 'go-version': '${{ env.GO_VERSION }}' - 'name': 'Set up Node' 'uses': 'actions/setup-node@v1' 'with': 'node-version': '${{ env.NODE_VERSION }}' - 'name': 'Set up Go modules cache' 'uses': 'actions/cache@v2' 'with': 'path': '~/go/pkg/mod' 'key': "${{ runner.os }}-go-${{ hashFiles('go.sum') }}" 'restore-keys': '${{ runner.os }}-go-' - 'name': 'Get npm cache directory' 'id': 'npm-cache' 'run': 'echo "::set-output name=dir::$(npm config get cache)"' - 'name': 'Set up node_modules cache' 'uses': 'actions/cache@v2' 'with': 'path': '${{ steps.npm-cache.outputs.dir }}' 'key': "${{ runner.os }}-node-${{ hashFiles('client/package-lock.json') }}" 'restore-keys': '${{ runner.os }}-node-' - 'name': 'Set up Snapcraft' 'run': 'sudo apt-get -yq --no-install-suggests --no-install-recommends install snapcraft' - 'name': 'Set up GoReleaser' 'run': 'curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | BINDIR="$(go env GOPATH)/bin" sh' - 'name': 'Run snapshot build' 'run': 'make release' 'docker': 'runs-on': 'ubuntu-latest' 'needs': 'test' 'steps': - 'name': 'Checkout' 'uses': 'actions/checkout@v2' 'with': 'fetch-depth': 0 - 'name': 'Set up QEMU' 'uses': 'docker/setup-qemu-action@v1' - 'name': 'Set up Docker Buildx' 'uses': 'docker/setup-buildx-action@v1' - 'name': 'Docker Buildx (build)' 'run': 'make docker-multi-arch' 'notify': 'needs': - 'app' - 'docker' # Secrets are not passed to workflows that are triggered by a pull request # from a fork. # # Use always() to signal to the runner that this job must run even if the # previous ones failed. 'if': ${{ always() && ( github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository ) }} 'runs-on': 'ubuntu-latest' 'steps': - 'name': 'Conclusion' 'uses': 'technote-space/workflow-conclusion-action@v1' - 'name': 'Send Slack notif' 'uses': '8398a7/action-slack@v3' 'with': 'status': '${{ env.WORKFLOW_CONCLUSION }}' 'fields': 'repo, message, commit, author, job' 'env': 'GITHUB_TOKEN': '${{ secrets.GITHUB_TOKEN }}' 'SLACK_WEBHOOK_URL': '${{ secrets.SLACK_WEBHOOK_URL }}'