mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-02-19 15:30:17 +00:00

The default caching for Go artifacts from actions/setup-go@v4 uses the hash of go.sum file as a cache key - see https://github.com/actions/cache/blob/main/examples.md#go---modules . This isn't enough for VictoriaMetrics case, since different makefile actions build different the Go artifacts, which need to be cached. So embed the action name in the cache key.
114 lines
2.5 KiB
YAML
114 lines
2.5 KiB
YAML
name: main
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- cluster
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "**.md"
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- cluster
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "**.md"
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
lint:
|
|
name: lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Code checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: 1.21.4
|
|
cache: false
|
|
|
|
- name: Cache Go artifacts
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
~/go/bin
|
|
key: go-artifacts-${{ runner.os }}-check-all-${{ hashFiles('go.sum') }}
|
|
restore-keys: go-artifacts-${{ runner.os }}-check-all-
|
|
|
|
- name: Run check-all
|
|
run: |
|
|
make check-all
|
|
git diff --exit-code
|
|
|
|
build:
|
|
needs: lint
|
|
name: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Code checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
id: go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: 1.21.4
|
|
cache: false
|
|
|
|
- name: Cache Go artifacts
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
~/go/bin
|
|
key: go-artifacts-${{ runner.os }}-crossbuild-${{ hashFiles('go.sum') }}
|
|
restore-keys: go-artifacts-${{ runner.os }}-crossbuild-
|
|
|
|
- name: Build
|
|
run: make crossbuild
|
|
|
|
test:
|
|
needs: build
|
|
strategy:
|
|
matrix:
|
|
scenario: ["test-full", "test-pure", "test-full-386"]
|
|
name: test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Code checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: 1.21.4
|
|
cache: false
|
|
|
|
- name: Cache Go artifacts
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
~/go/bin
|
|
key: go-artifacts-${{ runner.os }}-${{ matrix.scenario }}-${{ hashFiles('go.sum') }}
|
|
restore-keys: go-artifacts-${{ runner.os }}-${{ matrix.scenario }}-
|
|
|
|
- name: run tests
|
|
run: make ${{ matrix.scenario}}
|
|
|
|
- name: Publish coverage
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
file: ./coverage.txt
|