Centreon collect #5425
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Centreon collect | |
run-name: | | |
${{ | |
(github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.nightly_manual_trigger == 'true')) | |
&& format('collect nightly {0}', github.ref_name) | |
|| '' | |
}} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
workflow_dispatch: | |
inputs: | |
nightly_manual_trigger: | |
description: 'Set to true for nightly run' | |
required: true | |
default: false | |
type: boolean | |
schedule: | |
- cron: '30 0 * * 1-5' | |
pull_request: | |
paths: | |
- agent/** | |
- bbdo/** | |
- broker/** | |
- ccc/** | |
- clib/** | |
- connectors/** | |
- custom-triplets/** | |
- engine/** | |
- grpc/** | |
- packaging/** | |
- cmake.sh | |
- cmake-vcpkg.sh | |
- CMakeLists.txt | |
- CMakeListsLinux.txt | |
- vcpkg.json | |
- overlays/** | |
- selinux/** | |
- "!.veracode-exclusions" | |
- "!veracode.json" | |
- "!**/test/**" | |
push: | |
branches: | |
- develop | |
- dev-[2-9][0-9].[0-9][0-9].x | |
- master | |
- "[2-9][0-9].[0-9][0-9].x" | |
paths: | |
- agent/** | |
- bbdo/** | |
- broker/** | |
- ccc/** | |
- clib/** | |
- connectors/** | |
- custom-triplets/** | |
- engine/** | |
- grpc/** | |
- packaging/** | |
- cmake.sh | |
- cmake-vcpkg.sh | |
- CMakeLists.txt | |
- CMakeListsLinux.txt | |
- vcpkg.json | |
- overlays/** | |
- selinux/** | |
- "!.veracode-exclusions" | |
- "!veracode.json" | |
- "!**/test/**" | |
jobs: | |
get-environment: | |
uses: ./.github/workflows/get-environment.yml | |
with: | |
version_file: CMakeLists.txt | |
nightly_manual_trigger: ${{ inputs.nightly_manual_trigger || false }} | |
unit-test: | |
needs: [get-environment] | |
if: ${{ ! contains(fromJson('["stable"]'), needs.get-environment.outputs.stability) }} | |
runs-on: [self-hosted, collect] | |
strategy: | |
fail-fast: false | |
matrix: | |
image: [alma8, alma9, debian-bullseye, debian-bookworm] | |
name: unit test ${{ matrix.image }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Login to Registry | |
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 | |
with: | |
registry: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }} | |
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }} | |
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }} | |
- name: Test ${{ matrix.image }} | |
uses: ./.github/actions/runner-docker | |
with: | |
registry_url: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }} | |
script_name: /src/.github/scripts/collect-unit-tests | |
image_name: centreon-collect-${{ matrix.image }} | |
image_version: ${{ needs.get-environment.outputs.img_version }} | |
package: | |
needs: [get-environment] | |
if: ${{ ! contains(fromJson('["stable"]'), needs.get-environment.outputs.stability) }} | |
uses: ./.github/workflows/package-collect.yml | |
with: | |
major_version: ${{ needs.get-environment.outputs.major_version }} | |
minor_version: ${{ needs.get-environment.outputs.minor_version }} | |
img_version: ${{ needs.get-environment.outputs.img_version }} | |
release: ${{ needs.get-environment.outputs.release }} | |
commit_hash: ${{ github.sha }} | |
stability: ${{ needs.get-environment.outputs.stability }} | |
is_nightly: ${{ needs.get-environment.outputs.is_nightly }} | |
secrets: inherit | |
deliver-sources: | |
runs-on: [self-hosted, common] | |
needs: [get-environment, package] | |
if: ${{ contains(fromJson('["stable"]'), needs.get-environment.outputs.stability) && github.event_name != 'workflow_dispatch' }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
path: centreon-collect | |
- name: Deliver sources | |
uses: ./centreon-collect/.github/actions/release-sources | |
with: | |
bucket_directory: centreon-collect | |
module_directory: centreon-collect | |
module_name: centreon-collect | |
major_version: ${{ needs.get-environment.outputs.major_version }} | |
minor_version: ${{ needs.get-environment.outputs.minor_version }} | |
token_download_centreon_com: ${{ secrets.TOKEN_DOWNLOAD_CENTREON_COM }} | |
deliver-rpm: | |
if: ${{ contains(fromJson('["testing", "stable"]'), needs.get-environment.outputs.stability) }} | |
needs: [get-environment, package] | |
runs-on: [self-hosted, common] | |
strategy: | |
matrix: | |
include: | |
- distrib: el8 | |
arch: amd64 | |
- distrib: el9 | |
arch: amd64 | |
name: deliver ${{ matrix.distrib }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Publish RPM packages | |
uses: ./.github/actions/delivery | |
with: | |
module_name: collect | |
distrib: ${{ matrix.distrib }} | |
major_version: ${{ needs.get-environment.outputs.major_version }} | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
cache_key: ${{ github.run_id }}-${{ github.sha }}-rpm-centreon-collect-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }} | |
stability: ${{ needs.get-environment.outputs.stability }} | |
release_type: ${{ needs.get-environment.outputs.release_type }} | |
is_cloud: ${{ needs.get-environment.outputs.is_cloud }} | |
- name: Create Jira ticket if nightly build failure | |
if: | | |
needs.get-environment.outputs.is_nightly == 'true' && github.run_attempt == 1 && | |
failure() && | |
startsWith(github.ref_name, 'dev') | |
uses: ./.github/actions/create-jira-ticket | |
with: | |
jira_base_url: ${{ secrets.JIRA_BASE_URL }} | |
jira_user_email: ${{ secrets.XRAY_JIRA_USER_EMAIL }} | |
jira_api_token: ${{ secrets.XRAY_JIRA_TOKEN }} | |
module_name: "centreon-collect" | |
ticket_labels: '["Nightly", "Pipeline", "nightly-${{ github.ref_name }}", "${{ github.job }}"]' | |
deliver-deb: | |
if: ${{ contains(fromJson('["testing", "stable"]'), needs.get-environment.outputs.stability) }} | |
needs: [get-environment, package] | |
runs-on: [self-hosted, common] | |
strategy: | |
matrix: | |
include: | |
- distrib: bullseye | |
arch: amd64 | |
- distrib: bullseye | |
arch: arm64 | |
- distrib: bookworm | |
arch: amd64 | |
- distrib: jammy | |
arch: amd64 | |
name: deliver ${{ matrix.distrib }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Publish DEB packages | |
uses: ./.github/actions/delivery | |
with: | |
module_name: collect | |
distrib: ${{ matrix.distrib }} | |
major_version: ${{ needs.get-environment.outputs.major_version }} | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
cache_key: ${{ github.run_id }}-${{ github.sha }}-deb-centreon-collect-${{ matrix.distrib }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }} | |
stability: ${{ needs.get-environment.outputs.stability }} | |
release_type: ${{ needs.get-environment.outputs.release_type }} | |
is_cloud: ${{ needs.get-environment.outputs.is_cloud }} | |
- name: Create Jira ticket if nightly build failure | |
if: | | |
needs.get-environment.outputs.is_nightly == 'true' && github.run_attempt == 1 && | |
failure() && | |
startsWith(github.ref_name, 'dev') | |
uses: ./.github/actions/create-jira-ticket | |
with: | |
jira_base_url: ${{ secrets.JIRA_BASE_URL }} | |
jira_user_email: ${{ secrets.XRAY_JIRA_USER_EMAIL }} | |
jira_api_token: ${{ secrets.XRAY_JIRA_TOKEN }} | |
module_name: "centreon-collect" | |
ticket_labels: '["Nightly", "Pipeline", "nightly-${{ github.ref_name }}", "${{ github.job }}"]' | |
promote: | |
needs: [get-environment, deliver-rpm, deliver-deb] | |
if: | | |
(contains(fromJson('["stable", "testing"]'), needs.get-environment.outputs.stability) && github.event_name != 'workflow_dispatch') && | |
! cancelled() && | |
! contains(needs.*.result, 'failure') && | |
! contains(needs.*.result, 'cancelled') | |
runs-on: [self-hosted, common] | |
strategy: | |
matrix: | |
distrib: [el8, el9, bullseye, bookworm, jammy] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Promote ${{ matrix.distrib }} to stable | |
uses: ./.github/actions/promote-to-stable | |
with: | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
module_name: collect | |
distrib: ${{ matrix.distrib }} | |
major_version: ${{ needs.get-environment.outputs.major_version }} | |
stability: ${{ needs.get-environment.outputs.stability }} | |
github_ref_name: ${{ github.ref_name }} | |
release_type: ${{ needs.get-environment.outputs.release_type }} | |
is_cloud: ${{ needs.get-environment.outputs.is_cloud }} |