Continuous integration healthcheck #22
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous integration healthcheck | |
on: | |
schedule: | |
- cron: 0 6 * * * # at 06:00 every day, UTC | |
workflow_dispatch: | |
jobs: | |
update: | |
name: Updating test suite | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: { fetch-depth: 0 } | |
- name: Fetch new test data | |
run: ./Taskfile testdata | |
test: | |
name: Testing | |
needs: [ update] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
go: | |
- 1.x | |
- 1.20.x | |
- 1.21.x | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: { fetch-depth: 0 } | |
- name: Set up Go environment | |
uses: actions/setup-go@v4 | |
with: { go-version: '${{ matrix.go }}' } | |
- name: Prepare and run tests | |
run: make env deps-fetch test | |
notify: | |
name: Notifying | |
needs: [ update, test ] | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' && (failure() || success()) | |
steps: | |
- name: Send Slack notification | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_COLOR: ${{ contains(needs.*.result, 'failure') && 'failure' || 'success' }} | |
SLACK_ICON: https://github.com/github.png?size=64 | |
SLACK_TITLE: 'βοΈ ${{ github.repository }}: ${{ github.workflow }}' | |
SLACK_USERNAME: GitHub Actions | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} |