chore(git): move centreon-gorgone to centreon-collect repository #1
Workflow file for this run
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: gorgone | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||
cancel-in-progress: true | ||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
- ready_for_review | ||
# paths: | ||
# - "centreon-gorgone/**" | ||
# - "!centreon-gorgone/veracode.json" | ||
# - "!centreon-gorgone/.veracode-exclusions" | ||
push: | ||
branches: | ||
- develop | ||
- dev-[2-9][0-9].[0-9][0-9].x | ||
- master | ||
- "[2-9][0-9].[0-9][0-9].x" | ||
paths: | ||
- "centreon-gorgone/**" | ||
- "!centreon-gorgone/veracode.json" | ||
- "!centreon-gorgone/.veracode-exclusions" | ||
env: | ||
base_directory: centreon-gorgone | ||
jobs: | ||
get-version: | ||
uses: ./.github/workflows/get-version.yml | ||
with: | ||
version_file: centreon-gorgone/.version | ||
veracode-analysis: | ||
needs: [get-version] | ||
uses: ./.github/workflows/veracode-analysis.yml | ||
with: | ||
module_directory: centreon-gorgone | ||
module_name: centreon-gorgone | ||
major_version: ${{ needs.get-version.outputs.major_version }} | ||
minor_version: ${{ needs.get-version.outputs.minor_version }} | ||
stability: ${{ needs.get-version.outputs.stability }} | ||
is_perl_project: true | ||
secrets: | ||
veracode_api_id: ${{ secrets.VERACODE_API_ID_GORG }} | ||
veracode_api_key: ${{ secrets.VERACODE_API_KEY_GORG }} | ||
veracode_srcclr_token: ${{ secrets.VERACODE_SRCCLR_TOKEN }} | ||
jira_base_url: ${{ secrets.JIRA_BASE_URL }} | ||
jira_user_email: ${{ secrets.XRAY_JIRA_USER_EMAIL }} | ||
jira_api_token: ${{ secrets.XRAY_JIRA_TOKEN }} | ||
package: | ||
needs: [get-version] | ||
if: ${{ needs.get-version.outputs.stability != 'stable' }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
distrib: [el8, el9, bullseye, bookworm, jammy] | ||
include: | ||
- package_extension: rpm | ||
image: packaging-nfpm-alma8 | ||
distrib: el8 | ||
- package_extension: rpm | ||
image: packaging-nfpm-alma9 | ||
distrib: el9 | ||
- package_extension: deb | ||
image: packaging-nfpm-bullseye | ||
distrib: bullseye | ||
- package_extension: deb | ||
image: packaging-nfpm-bookworm | ||
distrib: bookworm | ||
- package_extension: deb | ||
image: packaging-nfpm-jammy | ||
distrib: jammy | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:${{ needs.get-version.outputs.major_version }} | ||
credentials: | ||
username: ${{ secrets.DOCKER_REGISTRY_ID }} | ||
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} | ||
name: package ${{ matrix.distrib }} | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
- name: Set package version and paths according to distrib | ||
run: | | ||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then | ||
PERL_VENDORLIB="/usr/share/perl5" | ||
else | ||
PERL_VENDORLIB="/usr/share/perl5/vendor_perl" | ||
fi | ||
echo "PERL_VENDORLIB=$PERL_VENDORLIB" >> $GITHUB_ENV | ||
shell: bash | ||
- name: Generate selinux binaries | ||
if: ${{ matrix.package_extension == 'rpm' }} | ||
run: | | ||
cd centreon-gorgone/selinux | ||
sed -i "s/@VERSION@/${{ needs.get-version.outputs.major_version }}.${{ needs.get-version.outputs.minor_version }}/g" centreon-gorgoned.te | ||
make -f /usr/share/selinux/devel/Makefile | ||
shell: bash | ||
- name: Remove selinux packaging files on debian | ||
if: ${{ matrix.package_extension == 'deb' }} | ||
run: rm -f centreon-gorgone/packaging/*-selinux.yaml | ||
shell: bash | ||
- name: Package | ||
uses: ./.github/actions/package-nfpm | ||
with: | ||
nfpm_file_pattern: "centreon-gorgone/packaging/*.yaml" | ||
distrib: ${{ matrix.distrib }} | ||
package_extension: ${{ matrix.package_extension }} | ||
major_version: ${{ needs.get-version.outputs.major_version }} | ||
minor_version: ${{ needs.get-version.outputs.minor_version }} | ||
release: ${{ needs.get-version.outputs.release }} | ||
arch: all | ||
commit_hash: ${{ github.sha }} | ||
cache_key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }} | ||
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }} | ||
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }} | ||
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }} | ||
stability: ${{ needs.get-version.outputs.stability }} | ||
test-gorgone: | ||
needs: [get-version, package] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
distrib: [el8, bullseye] | ||
include: | ||
- package_extension: rpm | ||
image: gorgone-testing-alma8 | ||
distrib: el8 | ||
- package_extension: deb | ||
image: gorgone-testing-bullseye | ||
distrib: bullseye | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:${{ needs.get-version.outputs.major_version }} | ||
credentials: | ||
username: ${{ secrets.DOCKER_REGISTRY_ID }} | ||
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} | ||
services: | ||
mariadb: | ||
image: mariadb:latest | ||
ports: | ||
- 3306 | ||
env: | ||
MYSQL_USER: centreon | ||
MYSQL_PASSWORD: password | ||
MYSQL_ROOT_PASSWORD: password | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@v4 | ||
- name: get cached gorgone package | ||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | ||
with: | ||
path: ./*.${{ matrix.package_extension }} | ||
key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }} | ||
fail-on-cache-miss: true | ||
- name: Install gorgogne from just built package | ||
shell: bash | ||
run: | | ||
if [[ "${{ matrix.package_extension }}" == "deb" ]]; then | ||
apt install -y ./centreon-gorgone*${{ matrix.distrib }}* | ||
else | ||
dnf install -y ./centreon-gorgone*${{ matrix.distrib }}* ./centreon-gorgone-centreon-config*${{ matrix.distrib }}* | ||
# in el8 at least, there is a package for the configuration and a package for the actual code. | ||
# this is not the case for debian, and for now I don't know why it was made any different between the 2 Os. | ||
fi | ||
- name: Create databases | ||
run: | | ||
mysql -h mariadb -u root -ppassword -e "CREATE DATABASE \`centreon\`" | ||
mysql -h mariadb -u root -ppassword -e "CREATE DATABASE \`centreon-storage\`" | ||
mysql -h mariadb -u root -ppassword -e "GRANT ALL PRIVILEGES ON centreon.* TO 'centreon'@'%'" | ||
mysql -h mariadb -u root -ppassword -e "GRANT ALL PRIVILEGES ON \`centreon-storage\`.* TO 'centreon'@'%'" | ||
mysql -h mariadb -u root -ppassword 'centreon' < centreon/www/install/createTables.sql | ||
mysql -h mariadb -u root -ppassword 'centreon-storage' < centreon/www/install/createTablesCentstorage.sql | ||
- name: Run tests | ||
run: robot -v 'DBHOST:mariadb' -v 'DBNAME:centreon' -v 'DBUSER:centreon' centreon-gorgone/tests | ||
- name: Upload gorgone and robot debug artifacts | ||
if: failure() | ||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 | ||
with: | ||
name: gorgone-debug-${{ matrix.distrib }} | ||
path: | | ||
log.html | ||
/var/log/centreon-gorgone | ||
/etc/centreon-gorgone | ||
retention-days: 1 | ||
deliver-sources: | ||
runs-on: [self-hosted, common] | ||
needs: [get-version, package] | ||
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) && github.event_name != 'workflow_dispatch' }} | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
- name: Deliver sources | ||
uses: ./.github/actions/release-sources | ||
with: | ||
bucket_directory: centreon-gorgone | ||
module_directory: centreon-gorgone | ||
module_name: centreon-gorgone | ||
major_version: ${{ needs.get-version.outputs.major_version }} | ||
minor_version: ${{ needs.get-version.outputs.minor_version }} | ||
token_download_centreon_com: ${{ secrets.TOKEN_DOWNLOAD_CENTREON_COM }} | ||
deliver-rpm: | ||
runs-on: [self-hosted, common] | ||
needs: [get-version, package] | ||
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }} | ||
strategy: | ||
matrix: | ||
distrib: [el8, el9] | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
- name: Delivery | ||
uses: ./.github/actions/rpm-delivery | ||
with: | ||
module_name: gorgone | ||
distrib: ${{ matrix.distrib }} | ||
version: ${{ needs.get-version.outputs.major_version }} | ||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | ||
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-${{ matrix.distrib }} | ||
stability: ${{ needs.get-version.outputs.stability }} | ||
release_type: ${{ needs.get-version.outputs.release_type }} | ||
release_cloud: ${{ needs.get-version.outputs.release_cloud }} | ||
deliver-deb: | ||
runs-on: [self-hosted, common] | ||
needs: [get-version, package] | ||
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }} | ||
strategy: | ||
matrix: | ||
distrib: [bullseye, bookworm, jammy] | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
- name: Delivery | ||
uses: ./.github/actions/deb-delivery | ||
with: | ||
module_name: gorgone | ||
distrib: ${{ matrix.distrib }} | ||
version: ${{ needs.get-version.outputs.major_version }} | ||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | ||
cache_key: ${{ github.sha }}-${{ github.run_id }}-deb-${{ matrix.distrib }} | ||
stability: ${{ needs.get-version.outputs.stability }} | ||
release_type: ${{ needs.get-version.outputs.release_type }} | ||
release_cloud: ${{ needs.get-version.outputs.release_cloud }} | ||
promote: | ||
needs: [get-version] | ||
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) && github.event_name != 'workflow_dispatch' }} | ||
runs-on: [self-hosted, common] | ||
strategy: | ||
matrix: | ||
distrib: [el8, el9, bullseye, bookworm] | ||
steps: | ||
- name: Checkout sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
- name: Promote ${{ matrix.distrib }} to stable | ||
uses: ./.github/actions/promote-to-stable | ||
with: | ||
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | ||
module: gorgone | ||
distrib: ${{ matrix.distrib }} | ||
major_version: ${{ needs.get-version.outputs.major_version }} | ||
minor_version: ${{ needs.get-version.outputs.minor_version }} | ||
stability: ${{ needs.get-version.outputs.stability }} | ||
github_ref_name: ${{ github.ref_name }} | ||
release_type: ${{ needs.get-version.outputs.release_type }} | ||
release_cloud: ${{ needs.get-version.outputs.release_cloud }} |