Skip to content

Continuous integration healthcheck #14

Continuous integration healthcheck

Continuous integration healthcheck #14

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 }}