You've already forked postgres_exporter
mirror of
https://github.com/prometheus-community/postgres_exporter.git
synced 2025-12-21 04:00:58 +03:00
Update GitHub Actions to run all CI (#1231)
* Update GitHub Actions config to run tests Signed-off-by: Joe Adams <github@joeadams.io> * Add CI steps for release and include all postgres versions Signed-off-by: Joe Adams <github@joeadams.io> * Disable circleci jobs This will stop the CI jobs but leave existing PRs in place until we can get those updated. Signed-off-by: Joe Adams <github@joeadams.io> --------- Signed-off-by: Joe Adams <github@joeadams.io>
This commit is contained in:
@@ -1,103 +1,33 @@
|
|||||||
---
|
---
|
||||||
|
# Prometheus has switched to GitHub action.
|
||||||
|
# Circle CI is not disabled repository-wise so that previous pull requests
|
||||||
|
# continue working.
|
||||||
|
# This file does not generate any CircleCI workflow.
|
||||||
|
|
||||||
version: 2.1
|
version: 2.1
|
||||||
|
|
||||||
orbs:
|
|
||||||
prometheus: prometheus/prometheus@0.17.1
|
|
||||||
|
|
||||||
executors:
|
executors:
|
||||||
# This must match .promu.yml.
|
|
||||||
golang:
|
golang:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/go:1.25
|
- image: busybox
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
noopjob:
|
||||||
executor: golang
|
executor: golang
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- prometheus/setup_environment
|
- run:
|
||||||
- run: GOHOSTARCH=386 GOARCH=386 make test
|
command: "true"
|
||||||
- run: make
|
|
||||||
- prometheus/store_artifact:
|
|
||||||
file: postgres_exporter
|
|
||||||
|
|
||||||
integration:
|
|
||||||
docker:
|
|
||||||
- image: cimg/go:1.25
|
|
||||||
- image: << parameters.postgres_image >>
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: circle_test
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
POSTGRES_PASSWORD: test
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
postgres_image:
|
|
||||||
type: string
|
|
||||||
|
|
||||||
environment:
|
|
||||||
DATA_SOURCE_NAME: 'postgresql://postgres:test@localhost:5432/circle_test?sslmode=disable'
|
|
||||||
GOOPTS: '-v -tags integration'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- setup_remote_docker
|
|
||||||
- run: docker version
|
|
||||||
- run: make build
|
|
||||||
- run: make test
|
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
postgres_exporter:
|
prometheus:
|
||||||
jobs:
|
jobs:
|
||||||
- test:
|
- noopjob
|
||||||
filters:
|
triggers:
|
||||||
tags:
|
- schedule:
|
||||||
only: /.*/
|
cron: "0 0 30 2 *"
|
||||||
- integration:
|
|
||||||
matrix:
|
|
||||||
parameters:
|
|
||||||
postgres_image:
|
|
||||||
- cimg/postgres:13.22
|
|
||||||
- cimg/postgres:14.19
|
|
||||||
- cimg/postgres:15.14
|
|
||||||
- cimg/postgres:16.10
|
|
||||||
- cimg/postgres:17.6
|
|
||||||
- prometheus/build:
|
|
||||||
name: build
|
|
||||||
parallelism: 3
|
|
||||||
promu_opts: "-p linux/amd64 -p windows/amd64 -p linux/arm64 -p darwin/amd64 -p darwin/arm64 -p linux/386"
|
|
||||||
filters:
|
|
||||||
tags:
|
|
||||||
ignore: /^v.*/
|
|
||||||
branches:
|
|
||||||
ignore: /^(main|master|release-.*|.*build-all.*)$/
|
|
||||||
- prometheus/build:
|
|
||||||
name: build_all
|
|
||||||
parallelism: 12
|
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: /^(main|master|release-.*|.*build-all.*)$/
|
only:
|
||||||
tags:
|
- main
|
||||||
only: /^v.*/
|
|
||||||
- prometheus/publish_master:
|
|
||||||
context: org-context
|
|
||||||
docker_hub_organization: prometheuscommunity
|
|
||||||
quay_io_organization: prometheuscommunity
|
|
||||||
requires:
|
|
||||||
- test
|
|
||||||
- build_all
|
|
||||||
filters:
|
|
||||||
branches:
|
|
||||||
only: master
|
|
||||||
- prometheus/publish_release:
|
|
||||||
context: org-context
|
|
||||||
docker_hub_organization: prometheuscommunity
|
|
||||||
quay_io_organization: prometheuscommunity
|
|
||||||
requires:
|
|
||||||
- test
|
|
||||||
- build_all
|
|
||||||
filters:
|
|
||||||
tags:
|
|
||||||
only: /^v.*/
|
|
||||||
branches:
|
|
||||||
ignore: /.*/
|
|
||||||
|
|||||||
146
.github/workflows/ci.yml
vendored
Normal file
146
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
---
|
||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test_go:
|
||||||
|
name: Go tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
# Whenever the Go version is updated here, .promu.yml
|
||||||
|
# should also be updated.
|
||||||
|
image: quay.io/prometheus/golang-builder:1.25-base
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/actions/setup_environment
|
||||||
|
- run: make test
|
||||||
|
- run: make GO_ONLY=1 SKIP_GOLANGCI_LINT=1
|
||||||
|
integration_tests:
|
||||||
|
name: Integration tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
# Define Postgres versions to test against.
|
||||||
|
postgres_version:
|
||||||
|
- 13.22
|
||||||
|
- 14.19
|
||||||
|
- 15.14
|
||||||
|
- 16.10
|
||||||
|
- 17.6
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:${{ matrix.postgres_version }}
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: circle_test
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: test
|
||||||
|
# options: >-
|
||||||
|
# --health-cmd="pg_isready -U postgres -d circle_test"
|
||||||
|
# --health-interval=10s
|
||||||
|
# --health-timeout=5s
|
||||||
|
# --health-retries=5
|
||||||
|
container:
|
||||||
|
# Whenever the Go version is updated here, .promu.yml
|
||||||
|
# should also be updated.
|
||||||
|
image: quay.io/prometheus/golang-builder:1.25-base
|
||||||
|
env:
|
||||||
|
DATA_SOURCE_NAME: 'postgresql://postgres:test@postgres:5432/circle_test?sslmode=disable'
|
||||||
|
GOOPTS: '-v -tags integration'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/actions/setup_environment
|
||||||
|
- run: make build
|
||||||
|
- run: make test
|
||||||
|
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: Build Prometheus for common architectures
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: |
|
||||||
|
!(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
|
||||||
|
&&
|
||||||
|
!(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||||||
|
&&
|
||||||
|
!(github.event_name == 'push' && github.event.ref == 'refs/heads/main')
|
||||||
|
&&
|
||||||
|
!(github.event_name == 'push' && github.event.ref == 'refs/heads/master')
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
thread: [ 0, 1, 2 ]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/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:
|
||||||
|
name: Build Prometheus for all architectures
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
|
||||||
|
||
|
||||||
|
(github.event_name == 'pull_request' && startsWith(github.event.pull_request.base.ref, 'release-'))
|
||||||
|
||
|
||||||
|
(github.event_name == 'push' && github.event.ref == 'refs/heads/main')
|
||||||
|
||
|
||||||
|
(github.event_name == 'push' && github.event.ref == 'refs/heads/master')
|
||||||
|
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/actions/build
|
||||||
|
with:
|
||||||
|
parallelism: 12
|
||||||
|
thread: ${{ matrix.thread }}
|
||||||
|
|
||||||
|
publish_main:
|
||||||
|
# https://github.com/prometheus/promci/blob/52c7012f5f0070d7281b8db4a119e21341d43c91/actions/publish_main/action.yml
|
||||||
|
name: Publish main branch artifacts
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [test_go, build_all]
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'push' && github.event.ref == 'refs/heads/main')
|
||||||
|
||
|
||||||
|
(github.event_name == 'push' && github.event.ref == 'refs/heads/master')
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/actions/publish_main
|
||||||
|
with:
|
||||||
|
docker_hub_organization: prometheuscommunity
|
||||||
|
docker_hub_login: ${{ secrets.docker_hub_login }}
|
||||||
|
docker_hub_password: ${{ secrets.docker_hub_password }}
|
||||||
|
quay_io_organization: prometheuscommunity
|
||||||
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||||||
|
quay_io_password: ${{ secrets.quay_io_password }}
|
||||||
|
|
||||||
|
publish_release:
|
||||||
|
name: Publish release artefacts
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [test_go, build_all]
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
- uses: prometheus/promci@443c7fc2397e946bc9f5029e313a9c3441b9b86d # v0.4.7
|
||||||
|
- uses: ./.github/promci/actions/publish_release
|
||||||
|
with:
|
||||||
|
docker_hub_organization: prometheuscommunity
|
||||||
|
docker_hub_login: ${{ secrets.docker_hub_login }}
|
||||||
|
docker_hub_password: ${{ secrets.docker_hub_password }}
|
||||||
|
quay_io_organization: prometheuscommunity
|
||||||
|
quay_io_login: ${{ secrets.quay_io_login }}
|
||||||
|
quay_io_password: ${{ secrets.quay_io_password }}
|
||||||
|
github_token: ${{ secrets.PROMBOT_GITHUB_TOKEN }}
|
||||||
Reference in New Issue
Block a user