name: tester on: push: branches: - 'main' - 'release-**' pull_request: types: - opened - reopened - synchronize - ready_for_review branches: - 'main' - 'release-**' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: changes: outputs: should-run-tests: ${{ steps.changes.outputs.go == 'true' }} if: github.event.pull_request.draft == false runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v2 id: changes with: filters: | go: - '**.go' - 'go.*' - '.github/workflows/test.yml' test: needs: [changes] if: needs.changes.outputs.should-run-tests == 'true' name: Tests runs-on: ubuntu-22.04 container: ghcr.io/runatlantis/testing-env:latest steps: - uses: actions/checkout@v4 - run: make test-all - run: make check-fmt ########################################################### # Notifying #contributors about test failure on main branch ########################################################### - name: Slack failure notification if: ${{ github.ref == 'refs/heads/main' && failure() }} uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 with: payload: | { "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": ":x: Failed GitHub Action:" } }, { "type": "section", "fields": [ { "type": "mrkdwn", "text": "*Workflow:*\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.workflow }}>" }, { "type": "mrkdwn", "text": "*Job:*\n${{ github.job }}" }, { "type": "mrkdwn", "text": "*Repo:*\n${{ github.repository }}" } ] } ] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK skip-test: needs: [changes] if: needs.changes.outputs.should-run-tests == 'false' name: Tests runs-on: ubuntu-22.04 steps: - run: 'echo "No build required"'