mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-18 11:34:05 -08:00
148 lines
5.1 KiB
YAML
148 lines
5.1 KiB
YAML
|
---
|
||
|
name: tests
|
||
|
on:
|
||
|
pull_request:
|
||
|
push:
|
||
|
jobs:
|
||
|
test_go:
|
||
|
runs-on: ubuntu-latest
|
||
|
# Whenever the Go version is updated here, .promu.yml
|
||
|
# should also be updated.
|
||
|
container:
|
||
|
image: quay.io/prometheus/golang-builder:1.18-base
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/setup_environment
|
||
|
- run: make GO_ONLY=1 SKIP_GOLANGCI_LINT=1
|
||
|
- run: go test ./tsdb/ -test.tsdb-isolation=false
|
||
|
- run: make -C documentation/examples/remote_storage
|
||
|
- run: make -C documentation/examples
|
||
|
- uses: ./.github/actions/check_proto
|
||
|
with:
|
||
|
version: "3.15.8"
|
||
|
|
||
|
test_ui:
|
||
|
runs-on: ubuntu-latest
|
||
|
# Whenever the Go version is updated here, .promu.yml
|
||
|
# should also be updated.
|
||
|
container:
|
||
|
image: quay.io/prometheus/golang-builder:1.18-base
|
||
|
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/setup_environment
|
||
|
with:
|
||
|
enable_go: false
|
||
|
enable_npm: true
|
||
|
- run: make assets-tarball
|
||
|
- run: make ui-lint
|
||
|
- run: make ui-test
|
||
|
- uses: actions/upload-artifact@v3
|
||
|
with:
|
||
|
path: |
|
||
|
.tarballs
|
||
|
|
||
|
test_windows:
|
||
|
runs-on: windows-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: actions/setup-go@v3
|
||
|
with:
|
||
|
go-version: '<1.19'
|
||
|
- run: |
|
||
|
$TestTargets = go list ./... | Where-Object { $_ -NotMatch "(github.com/prometheus/prometheus/discovery.*|github.com/prometheus/prometheus/config|github.com/prometheus/prometheus/web)"}
|
||
|
go test $TestTargets -vet=off -v
|
||
|
shell: powershell
|
||
|
|
||
|
test_golang_oldest:
|
||
|
runs-on: ubuntu-latest
|
||
|
# The go verson in this image should be N-1 wrt test_go.
|
||
|
container:
|
||
|
image: quay.io/prometheus/golang-builder:1.17-base
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- run: make build
|
||
|
- run: go test ./tsdb/...
|
||
|
- run: go test ./tsdb/ -test.tsdb-isolation=false
|
||
|
|
||
|
test_mixins:
|
||
|
runs-on: ubuntu-latest
|
||
|
# Whenever the Go version is updated here, .promu.yml
|
||
|
# should also be updated.
|
||
|
container:
|
||
|
image: quay.io/prometheus/golang-builder:1.18-base
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- run: go install ./cmd/promtool/.
|
||
|
- run: go install github.com/google/go-jsonnet/cmd/jsonnet@latest
|
||
|
- run: go install github.com/google/go-jsonnet/cmd/jsonnetfmt@latest
|
||
|
- run: go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest
|
||
|
- run: make -C documentation/prometheus-mixin clean
|
||
|
- run: make -C documentation/prometheus-mixin jb_install
|
||
|
- run: make -C documentation/prometheus-mixin
|
||
|
- run: git diff --exit-code
|
||
|
|
||
|
build:
|
||
|
runs-on: ubuntu-latest
|
||
|
if: |
|
||
|
!(github.event_name == 'create' && github.event.ref_type != 'tag' && !startsWith(github.event.ref, 'refs/tags/v2.'))
|
||
|
&&
|
||
|
!(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||
|
&&
|
||
|
!(github.event_name == 'push' && github.event.ref == 'refs/heads/main')
|
||
|
strategy:
|
||
|
matrix:
|
||
|
thread: [ 0, 1, 2 ]
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/build
|
||
|
with:
|
||
|
promu_opts: "-p linux/amd64 -p windows/amd64 -p linux/arm64 -p darwin/amd64 -p darwin/arm64 -p linux/386"
|
||
|
parallelism: 3
|
||
|
thread: ${{ matrix.thread }}
|
||
|
build_all:
|
||
|
runs-on: ubuntu-latest
|
||
|
if: |
|
||
|
(github.event_name == 'create' && github.event.ref_type != 'tag' && !startsWith(github.event.ref, 'refs/tags/v2.'))
|
||
|
||
|
||
|
(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||
|
||
|
||
|
(github.event_name == 'push' && github.event.ref == 'refs/heads/main')
|
||
|
strategy:
|
||
|
matrix:
|
||
|
thread: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]
|
||
|
|
||
|
# Whenever the Go version is updated here, .promu.yml
|
||
|
# should also be updated.
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/build
|
||
|
with:
|
||
|
parallelism: 12
|
||
|
thread: ${{ matrix.thread }}
|
||
|
|
||
|
publish_main:
|
||
|
runs-on: ubuntu-latest
|
||
|
needs: [test_ui, test_go, test_windows, build_all]
|
||
|
if: "github.event_name == 'push' && github.event.ref == 'refs/heads/main'"
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/publish_main
|
||
|
with:
|
||
|
docker_hub_login: ${{ secrets.docker_hub_login }}
|
||
|
docker_hub_password: ${{ secrets.docker_hub_password }}
|
||
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||
|
quay_io_password: ${{ secrets.quay_io_password }}
|
||
|
publish_release:
|
||
|
runs-on: ubuntu-latest
|
||
|
needs: [test_ui, test_go, test_windows, build_all]
|
||
|
if: github.event_name == 'create' && github.event.ref_type == 'tag' && startsWith(github.event.ref, 'refs/tags/v2.')
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: ./.github/actions/publish_release
|
||
|
with:
|
||
|
docker_hub_login: ${{ secrets.docker_hub_login }}
|
||
|
docker_hub_password: ${{ secrets.docker_hub_password }}
|
||
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||
|
quay_io_password: ${{ secrets.quay_io_password }}
|