mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-24 21:24:05 -08:00
Refactor UI publishing and polish tests (#11267)
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu> Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
This commit is contained in:
parent
a703f9814b
commit
0a4c6d6c48
5
.github/actions/publish_images/action.yml
vendored
5
.github/actions/publish_images/action.yml
vendored
|
@ -27,11 +27,6 @@ inputs:
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: Download all workflow run artifacts
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: artifact
|
|
||||||
- uses: ./.github/actions/setup_environment
|
|
||||||
- if: inputs.dockerfile_path != ''
|
- if: inputs.dockerfile_path != ''
|
||||||
run: echo "export DOCKERFILE_PATH=${{ inputs.dockerfile_path }}" >> /tmp/tmp-profile
|
run: echo "export DOCKERFILE_PATH=${{ inputs.dockerfile_path }}" >> /tmp/tmp-profile
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
4
.github/actions/publish_main/action.yml
vendored
4
.github/actions/publish_main/action.yml
vendored
|
@ -26,6 +26,10 @@ runs:
|
||||||
- uses: ./.github/actions/setup_environment
|
- uses: ./.github/actions/setup_environment
|
||||||
with:
|
with:
|
||||||
enable_docker_multibuild: true
|
enable_docker_multibuild: true
|
||||||
|
- name: Download all workflow run artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: artifact
|
||||||
- uses: ./.github/actions/publish_images
|
- uses: ./.github/actions/publish_images
|
||||||
if: inputs.docker_hub_organization != '' && inputs.docker_hub_login != ''
|
if: inputs.docker_hub_organization != '' && inputs.docker_hub_login != ''
|
||||||
with:
|
with:
|
||||||
|
|
4
.github/actions/publish_release/action.yml
vendored
4
.github/actions/publish_release/action.yml
vendored
|
@ -26,6 +26,10 @@ runs:
|
||||||
- uses: ./.github/actions/setup_environment
|
- uses: ./.github/actions/setup_environment
|
||||||
with:
|
with:
|
||||||
enable_docker_multibuild: true
|
enable_docker_multibuild: true
|
||||||
|
- name: Download all workflow run artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: artifact
|
||||||
- run: promu crossbuild tarballs
|
- run: promu crossbuild tarballs
|
||||||
shell: bash
|
shell: bash
|
||||||
- run: promu checksum .tarballs
|
- run: promu checksum .tarballs
|
||||||
|
|
|
@ -27,11 +27,6 @@ inputs:
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: Download all workflow run artifacts
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: artifact
|
|
||||||
- uses: ./.github/actions/setup_environment
|
|
||||||
- if: inputs.dockerfile_path != ''
|
- if: inputs.dockerfile_path != ''
|
||||||
run: echo "export DOCKERFILE_PATH=${{ inputs.dockerfile_path }}" >> /tmp/tmp-profile
|
run: echo "export DOCKERFILE_PATH=${{ inputs.dockerfile_path }}" >> /tmp/tmp-profile
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
---
|
---
|
||||||
name: tests
|
name: CI
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
jobs:
|
jobs:
|
||||||
test_go:
|
test_go:
|
||||||
|
name: Go tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# Whenever the Go version is updated here, .promu.yml
|
# Whenever the Go version is updated here, .promu.yml
|
||||||
# should also be updated.
|
# should also be updated.
|
||||||
|
@ -22,6 +23,7 @@ jobs:
|
||||||
version: "3.15.8"
|
version: "3.15.8"
|
||||||
|
|
||||||
test_ui:
|
test_ui:
|
||||||
|
name: UI tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# Whenever the Go version is updated here, .promu.yml
|
# Whenever the Go version is updated here, .promu.yml
|
||||||
# should also be updated.
|
# should also be updated.
|
||||||
|
@ -42,6 +44,7 @@ jobs:
|
||||||
directory: .tarballs
|
directory: .tarballs
|
||||||
|
|
||||||
test_windows:
|
test_windows:
|
||||||
|
name: Go tests on Windows
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
@ -54,6 +57,7 @@ jobs:
|
||||||
shell: powershell
|
shell: powershell
|
||||||
|
|
||||||
test_golang_oldest:
|
test_golang_oldest:
|
||||||
|
name: Go tests with previous Go version
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# The go verson in this image should be N-1 wrt test_go.
|
# The go verson in this image should be N-1 wrt test_go.
|
||||||
container:
|
container:
|
||||||
|
@ -65,6 +69,7 @@ jobs:
|
||||||
- run: go test ./tsdb/ -test.tsdb-isolation=false
|
- run: go test ./tsdb/ -test.tsdb-isolation=false
|
||||||
|
|
||||||
test_mixins:
|
test_mixins:
|
||||||
|
name: Mixins tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# Whenever the Go version is updated here, .promu.yml
|
# Whenever the Go version is updated here, .promu.yml
|
||||||
# should also be updated.
|
# should also be updated.
|
||||||
|
@ -82,9 +87,10 @@ jobs:
|
||||||
- run: git diff --exit-code
|
- run: git diff --exit-code
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
name: Build Prometheus for common architectures
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: |
|
if: |
|
||||||
!(github.event_name == 'create' && github.event.ref_type != 'tag' && !startsWith(github.event.ref, 'refs/tags/v2.'))
|
!(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.'))
|
||||||
&&
|
&&
|
||||||
!(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
!(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||||||
&&
|
&&
|
||||||
|
@ -100,9 +106,10 @@ jobs:
|
||||||
parallelism: 3
|
parallelism: 3
|
||||||
thread: ${{ matrix.thread }}
|
thread: ${{ matrix.thread }}
|
||||||
build_all:
|
build_all:
|
||||||
|
name: Build Prometheus for all architectures
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: |
|
if: |
|
||||||
(github.event_name == 'create' && github.event.ref_type != 'tag' && !startsWith(github.event.ref, 'refs/tags/v2.'))
|
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.'))
|
||||||
||
|
||
|
||||||
(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||||||
||
|
||
|
||||||
|
@ -119,11 +126,34 @@ jobs:
|
||||||
with:
|
with:
|
||||||
parallelism: 12
|
parallelism: 12
|
||||||
thread: ${{ matrix.thread }}
|
thread: ${{ matrix.thread }}
|
||||||
|
golangci:
|
||||||
|
name: golangci-lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: '<1.19'
|
||||||
|
- name: Install snmp_exporter/generator dependencies
|
||||||
|
run: sudo apt-get update && sudo apt-get -y install libsnmp-dev
|
||||||
|
if: github.repository == 'prometheus/snmp_exporter'
|
||||||
|
- name: Lint
|
||||||
|
uses: golangci/golangci-lint-action@v3.2.0
|
||||||
|
with:
|
||||||
|
version: v1.45.2
|
||||||
|
fuzzing:
|
||||||
|
uses: ./.github/workflows/fuzzing.yml
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
codeql:
|
||||||
|
uses: ./.github/workflows/codeql-analysis.yml
|
||||||
|
|
||||||
publish_main:
|
publish_main:
|
||||||
|
name: Publish main branch artefacts
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [test_ui, test_go, test_windows, build_all]
|
needs: [test_ui, test_go, test_windows, golangci, codeql, build_all]
|
||||||
if: "github.event_name == 'push' && github.event.ref == 'refs/heads/main'"
|
if: github.event_name == 'push' && github.event.ref == 'refs/heads/main'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/publish_main
|
- uses: ./.github/actions/publish_main
|
||||||
|
@ -133,9 +163,10 @@ jobs:
|
||||||
quay_io_login: ${{ secrets.quay_io_login }}
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||||||
quay_io_password: ${{ secrets.quay_io_password }}
|
quay_io_password: ${{ secrets.quay_io_password }}
|
||||||
publish_release:
|
publish_release:
|
||||||
|
name: Publish release arfefacts
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [test_ui, test_go, test_windows, build_all]
|
needs: [test_ui, test_go, test_windows, golangci, codeql, build_all]
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag' && startsWith(github.event.ref, 'refs/tags/v2.')
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.')
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/publish_release
|
- uses: ./.github/actions/publish_release
|
||||||
|
@ -144,3 +175,38 @@ jobs:
|
||||||
docker_hub_password: ${{ secrets.docker_hub_password }}
|
docker_hub_password: ${{ secrets.docker_hub_password }}
|
||||||
quay_io_login: ${{ secrets.quay_io_login }}
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||||||
quay_io_password: ${{ secrets.quay_io_password }}
|
quay_io_password: ${{ secrets.quay_io_password }}
|
||||||
|
publish_ui_release:
|
||||||
|
name: Publish UI on npm Registry
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [test_ui, codeql]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Install nodejs
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version-file: "web/ui/.nvmrc"
|
||||||
|
registry-url: "https://registry.npmjs.org"
|
||||||
|
- uses: actions/cache@v3.0.8
|
||||||
|
with:
|
||||||
|
path: ~/.npm
|
||||||
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-node-
|
||||||
|
- name: Check libraries version
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.')
|
||||||
|
run: ./scripts/ui_release.sh --check-package "$(echo ${{ github.ref_name }}|sed s/v2/v0/)"
|
||||||
|
- name: build
|
||||||
|
run: make assets
|
||||||
|
- name: Copy files before publishing libs
|
||||||
|
run: ./scripts/ui_release.sh --copy
|
||||||
|
- name: Publish dry-run libraries
|
||||||
|
if: "!(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.'))"
|
||||||
|
run: ./scripts/ui_release.sh --publish dry-run
|
||||||
|
- name: Publish libraries
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v2.')
|
||||||
|
run: ./scripts/ui_release.sh --publish
|
||||||
|
env:
|
||||||
|
# The setup-node action writes an .npmrc file with this env variable
|
||||||
|
# as the placeholder for the auth token
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
5
.github/workflows/codeql-analysis.yml
vendored
5
.github/workflows/codeql-analysis.yml
vendored
|
@ -2,10 +2,7 @@
|
||||||
name: "CodeQL"
|
name: "CodeQL"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
workflow_call:
|
||||||
branches: [main, release-*]
|
|
||||||
pull_request:
|
|
||||||
branches: [main]
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "26 14 * * 1"
|
- cron: "26 14 * * 1"
|
||||||
|
|
||||||
|
|
2
.github/workflows/fuzzing.yml
vendored
2
.github/workflows/fuzzing.yml
vendored
|
@ -1,6 +1,6 @@
|
||||||
name: CIFuzz
|
name: CIFuzz
|
||||||
on:
|
on:
|
||||||
pull_request:
|
workflow_call:
|
||||||
jobs:
|
jobs:
|
||||||
Fuzzing:
|
Fuzzing:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
30
.github/workflows/golangci-lint.yml
vendored
30
.github/workflows/golangci-lint.yml
vendored
|
@ -1,30 +0,0 @@
|
||||||
name: golangci-lint
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- "go.sum"
|
|
||||||
- "go.mod"
|
|
||||||
- "**.go"
|
|
||||||
- "scripts/errcheck_excludes.txt"
|
|
||||||
- ".github/workflows/golangci-lint.yml"
|
|
||||||
- ".golangci.yml"
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
golangci:
|
|
||||||
name: lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: install Go
|
|
||||||
uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: 1.18.x
|
|
||||||
- name: Install snmp_exporter/generator dependencies
|
|
||||||
run: sudo apt-get update && sudo apt-get -y install libsnmp-dev
|
|
||||||
if: github.repository == 'prometheus/snmp_exporter'
|
|
||||||
- name: Lint
|
|
||||||
uses: golangci/golangci-lint-action@v3.2.0
|
|
||||||
with:
|
|
||||||
version: v1.45.2
|
|
45
.github/workflows/ui_build_and_release.yml
vendored
45
.github/workflows/ui_build_and_release.yml
vendored
|
@ -1,45 +0,0 @@
|
||||||
name: ui_build_and_release
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
tags:
|
|
||||||
- "v0.[0-9]+.[0-9]+*"
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
name: release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Install nodejs
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version-file: "web/ui/.nvmrc"
|
|
||||||
registry-url: "https://registry.npmjs.org"
|
|
||||||
- uses: actions/cache@v3.0.8
|
|
||||||
with:
|
|
||||||
path: ~/.npm
|
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-node-
|
|
||||||
|
|
||||||
- name: Check libraries version
|
|
||||||
## This step is verifying that the version of each package is matching the tag
|
|
||||||
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'v') }}
|
|
||||||
run: ./scripts/ui_release.sh --check-package "${{ github.ref_name }}"
|
|
||||||
- name: build
|
|
||||||
run: make assets
|
|
||||||
- name: Copy files before publishing libs
|
|
||||||
run: ./scripts/ui_release.sh --copy
|
|
||||||
- name: Publish dry-run libraries
|
|
||||||
if: ${{ github.event_name == 'pull_request' || github.ref_name == 'main' }}
|
|
||||||
run: ./scripts/ui_release.sh --publish dry-run
|
|
||||||
- name: Publish libraries
|
|
||||||
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'v') }}
|
|
||||||
run: ./scripts/ui_release.sh --publish
|
|
||||||
env:
|
|
||||||
# The setup-node action writes an .npmrc file with this env variable
|
|
||||||
# as the placeholder for the auth token
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
Loading…
Reference in a new issue