Skip to content

Commit

Permalink
Merge branch 'develop' into CTOR-1039-netapp-ontap-rest-api-volumes-a…
Browse files Browse the repository at this point in the history
…dd-logical-space-metrics
  • Loading branch information
itoussies authored Dec 26, 2024
2 parents 5d652f5 + f1ab4d9 commit 3276c67
Show file tree
Hide file tree
Showing 302 changed files with 111,635 additions and 3,393 deletions.
29 changes: 15 additions & 14 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
* @centreon/owners-connectors
* @centreon/owners-connectors

*.md @centreon/owners-doc
*.mdx @centreon/owners-doc
*.md @centreon/owners-doc
*.mdx @centreon/owners-doc

*.cmake @centreon/owners-cpp
CMakeLists.txt @centreon/owners-cpp
Makefile @centreon/owners-cpp
*.cmake @centreon/owners-cpp
CMakeLists.txt @centreon/owners-cpp
Makefile @centreon/owners-cpp

*.pm @centreon/owners-perl
*.pl @centreon/owners-perl
*.pm @centreon/owners-perl
*.pl @centreon/owners-perl
*.t @centreon/owners-perl

*.py @centreon/owners-python
*.py @centreon/owners-python

*.sh @centreon/owners-bash
*.sh @centreon/owners-bash

tests/** @centreon/owners-robot-e2e
tests/** @centreon/owners-robot-e2e

.github/** @centreon/owners-pipelines
packaging/** @centreon/owners-pipelines
selinux/** @centreon/owners-pipelines
.github/** @centreon/owners-pipelines
packaging/** @centreon/owners-perl
selinux/** @centreon/owners-pipelines
.github/scripts/pod_spell_check.t @centreon/owners-perl
5 changes: 3 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ publicly and we'll get in touch with you by private message if this information
- [ ] I have provide data or shown output displaying the result of this code in the plugin area concerned.

------------------------------------------------------------------------------------------------------
# Centreon team
# Centreon team (internal PR)

## Description

Expand Down Expand Up @@ -75,8 +75,9 @@ Mention the automated tests included in this FOR (what they test like mode/optio
- [ ] I have **rebased** my development branch on the base branch (develop).
- [ ] In case of a new plugin, I have created the new packaging directory accordingly.
- [ ] I have implemented automated tests related to my commits.
- [ ] Data used for automated tests are anonymized.
- [ ] I have reviewed all the help messages in all the .pm files I have modified.
- [ ] All sentences begin with a capital letter.
- [ ] All sentences are terminated by a period.
- [ ] All sentences end with a period.
- [ ] I am able to understand all the help messages, if not, exchange with the PO or TW to rewrite them.
- [ ] After having created the PR, I will make sure that all the tests provided in this PR have run and passed.
49 changes: 0 additions & 49 deletions .github/actions/deb-delivery-legacy/action.yml

This file was deleted.

60 changes: 0 additions & 60 deletions .github/actions/deb-delivery/action.yml

This file was deleted.

205 changes: 205 additions & 0 deletions .github/actions/package-delivery/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
name: "package-delivery"
description: "Deliver packages"
inputs:
module_name:
description: "The package module name"
required: true
distrib:
description: "The distribution used for packaging"
required: true
arch:
description: "The target distribution architecture"
required: false
cache_key:
description: "The cached package key"
required: true
stability:
description: "The package stability (stable, testing, unstable)"
required: true
release_type:
description: "Type of release (hotfix, release)"
required: true
artifactory_token:
description: "token for artifactory"
required: true

runs:
using: "composite"
steps:
- name: Validate inputs
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
if ('${{ inputs.module_name }}' === '') {
throw new Error('module_name input must be defined');
}
if (! ['stable', 'testing', 'unstable'].includes('${{ inputs.stability }}')) {
throw new Error(`Stability ${{ inputs.stability }} should not deliver packages`);
}
if ('${{ inputs.stability }}' === 'testing' && ! ['release', 'hotfix'].includes('${{ inputs.release_type }}')) {
throw new Error('release_type input must be defined when stability is testing');
}
- name: Parse distrib name
id: parse-distrib
uses: ./.github/actions/parse-distrib
with:
distrib: ${{ inputs.distrib }}

- name: Get repository stability path
id: get_repository_stability_path
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
let stabilitySubdirectory = '${{ inputs.stability }}';
if ('${{ inputs.stability }}' === 'testing' && '${{ inputs.release_type }}' === 'hotfix') {
stabilitySubdirectory = '${{ inputs.stability }}-${{ inputs.release_type }}';
}
let repositoryStabilityPath = '';
if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'el') {
repositoryStabilityPath = `rpm-plugins/${{ inputs.distrib }}/${stabilitySubdirectory}`;
} else if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'ubuntu') {
repositoryStabilityPath = `ubuntu-plugins-${{ inputs.stability }}`;
} else if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'debian') {
repositoryStabilityPath = `apt-plugins-${{ inputs.stability }}`;
} else {
throw new Error(`Repository cannot be find for distribution: ${{ inputs.distrib }}`);
}
core.setOutput(
'repository_stability_path',
repositoryStabilityPath,
);
- if: ${{ inputs.stability != 'stable' }}
name: Restore packages from cache
uses: actions/cache/restore@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: ./*.${{ steps.parse-distrib.outputs.package_extension }}
key: ${{ inputs.cache_key }}
fail-on-cache-miss: true

- uses: jfrog/setup-jfrog-cli@9fe0f98bd45b19e6e931d457f4e98f8f84461fb5 # v4.4.1
with:
disable-job-summary: true
disable-auto-build-publish: true
env:
JF_URL: https://centreon.jfrog.io
JF_ACCESS_TOKEN: ${{ inputs.artifactory_token }}

- if: ${{ inputs.stability == 'testing' }}
name: Clean existing testing packages
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'el') {
await exec.exec(
`jf rt del "${{ steps.get_repository_stability_path.outputs.repository_stability_path }}/*/${{ inputs.module_name }}/*.rpm" --exclusions "*/RPMS/*" --quiet`
);
} else if ('${{ steps.parse-distrib.outputs.package_extension }}' === 'deb') {
await exec.exec(
`jf rt del "${{ steps.get_repository_stability_path.outputs.repository_stability_path }}/pool/${{ inputs.module_name }}/*${{ steps.parse-distrib.outputs.package_distrib_name }}*.deb" --quiet --props "release_type=${{ inputs.release_type }}"`
);
}
- name: Download packages from testing
if: ${{ inputs.stability == 'stable' && github.event_name == 'push' && inputs.distrib != 'jammy' }}
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const commitSha = context.sha;
const pulls = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
sort: 'updated',
direction: 'desc',
state: 'closed',
per_page: 100
});
core.startGroup(`Checking pull request linked to commit ${commitSha}`);
const pr = pulls.data.find(p => {
console.log(`Checking pull request ${p.number}("${p.title}") with merge commit ${p.merge_commit_sha}`);
return p.merge_commit_sha === commitSha;
});
core.endGroup();
if (!pr) {
core.error(`No pull request found for merge commit ${commitSha}`);
return;
}
const prHeadRef = pr?.head?.ref || 'unknown';
let releaseType = '';
switch (true) {
case /^release.+/.test(prHeadRef):
releaseType = 'release';
break;
case /^hotfix.+/.test(prHeadRef):
releaseType = 'hotfix';
break;
default:
core.error(`No packages are promoted because push of branch ${prHeadRef} is not related to a hotfix/release pull request.`);
return;
}
console.log(`Release type: ${releaseType}`);
let fromStabilitySubdirectory = 'testing';
if (releaseType === 'hotfix' ) {
fromStabilitySubdirectory = `testing-${releaseType}`;
}
if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'el') {
await exec.exec(
`jf rt download "rpm-plugins/${{ inputs.distrib }}/${fromStabilitySubdirectory}/*/${{ inputs.module_name }}/*.rpm" --flat`
);
} else if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'ubuntu') {
await exec.exec(
`jf rt download "ubuntu-plugins-testing/pool/${{ inputs.module_name }}/*${{ steps.parse-distrib.outputs.package_distrib_name }}*.deb" --props "release_type=${releaseType}" --flat`
);
} else if ('${{ steps.parse-distrib.outputs.distrib_family }}' === 'debian') {
await exec.exec(
`jf rt download "apt-plugins-testing/pool/${{ inputs.module_name }}/*${{ steps.parse-distrib.outputs.package_distrib_name }}*.deb" --props "release_type=${releaseType}" --flat`
);
}
- name: Publish packages to ${{ inputs.stability }}
if: |
contains(fromJson('["testing", "unstable"]'), inputs.stability) ||
(inputs.stability == 'stable' && github.event_name == 'push' && inputs.distrib != 'jammy')
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const path = require('path');
const globber = await glob.create('*.${{ steps.parse-distrib.outputs.package_extension }}');
const debTargetProps = '${{ inputs.stability }}' == 'testing' ? '--target-props "release_type=${{ inputs.release_type }}"' : '';
for await (const file of globber.globGenerator()) {
const fileName = path.basename(file);
if ('${{ steps.parse-distrib.outputs.package_extension }}' === 'rpm') {
let arch = 'noarch';
if (/x86_64/.test(fileName)) {
arch = 'x86_64';
}
await exec.exec(
`jf rt upload "${fileName}" "${{ steps.get_repository_stability_path.outputs.repository_stability_path }}/${arch}/${{ inputs.module_name }}/" --flat`
);
} else if ('${{ steps.parse-distrib.outputs.package_extension }}' === 'deb') {
let arch = 'all';
const matches = fileName.match(/_([^_]+)\.deb/);
if (matches !== null && matches.length > 1) {
arch = matches[1];
}
if ('${{ inputs.arch }}' === '' || '${{ inputs.arch }}' === arch) {
await exec.exec(
`jf rt upload "${fileName}" "${{ steps.get_repository_stability_path.outputs.repository_stability_path }}/pool/${{ inputs.module_name }}/" --deb "${{ inputs.distrib }}/main/${arch}" ${debTargetProps} --flat`
);
}
}
}
Loading

0 comments on commit 3276c67

Please sign in to comment.