Skip to content

ci/cd(deps): bump actions/upload-artifact from 4.0.0 to 4.5.0 #241

ci/cd(deps): bump actions/upload-artifact from 4.0.0 to 4.5.0

ci/cd(deps): bump actions/upload-artifact from 4.0.0 to 4.5.0 #241

Workflow file for this run

name: Continuous integration
on:
pull_request:
branches: [ main ]
paths:
- '.github/workflows/ci.yml'
- '.golangci.yml'
- '**.go'
- 'go.{mod,sum}'
- 'Makefile'
- 'Taskfile'
push:
branches: [ main ]
paths:
- '.github/workflows/ci.yml'
- '.golangci.yml'
- '**.go'
- 'go.{mod,sum}'
- 'Makefile'
- 'Taskfile'
tags: [ '!*' ]
schedule:
- cron: 0 7 1 * * # at 07:00 on day-of-month 1, UTC
workflow_dispatch:
inputs:
reason:
description: The reason for dispatching it manually.
type: string
default: manual healthcheck
required: true
jobs:
lint:
name: Linting
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/[email protected]
with: { fetch-depth: 0 }
- name: Set up Go environment
uses: actions/[email protected]
with:
go-version: 1.21.x
cache-dependency-path: tools/go.sum
check-latest: true
- name: Set up environment
run: make tools
- name: Run linter
run: make lint
- name: Run fast check the state
run: make fast-check
test:
name: Testing
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go:
- 1.x
- 1.11.x
- 1.12.x
- 1.13.x
- 1.14.x
- 1.15.x
- 1.16.x
- 1.17.x
- 1.18.x
- 1.19.x
- 1.20.x
- 1.21.x
steps:
- name: Checkout the repository
uses: actions/[email protected]
with: { fetch-depth: 0 }
- name: Set up Go environment
uses: actions/[email protected]
with: { go-version: '${{ matrix.go }}', check-latest: true }
- name: Set up environment
run: make env deps
- name: Run fast check source code
run: make go-check
- name: Run tests
run: make test
if: matrix.go != '1.21.x'
- name: Run tests with coverage report
run: make test-with-coverage
if: matrix.go == '1.21.x'
- name: Store code coverage report
uses: actions/[email protected]
if: matrix.go == '1.21.x'
with: { name: code-coverage-report, path: c.out }
report:
name: Reporting
needs: [ test ]
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/[email protected]
with: { fetch-depth: 0 }
- name: Fetch code coverage report
uses: actions/[email protected]
with: { name: code-coverage-report }
- name: Send code coverage report to Codecov (codecov.io)
uses: codecov/[email protected]
with: { files: c.out }
notify:
name: Notifying
needs: [ lint, test ]
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' && (failure() || success())
steps:
- name: Checkout the repository
uses: actions/[email protected]
with: { fetch-depth: 0 }
- name: Send notification
uses: ./.github/actions/notify
with:
emoji: ⚙️
channel: ${{ secrets.SLACK_WEBHOOK }}
success: ${{ ! contains(needs.*.result, 'failure') }}