-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
- Loading branch information
Showing
13 changed files
with
501 additions
and
16 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
name: "deb-delivery" | ||
description: "Package deb packages" | ||
inputs: | ||
module_name: | ||
description: "The package module name" | ||
required: true | ||
distrib: | ||
description: "The distribution used for packaging" | ||
required: true | ||
version: | ||
description: "Centreon packaged major version" | ||
required: true | ||
cache_key: | ||
description: "The cached package key" | ||
required: true | ||
stability: | ||
description: "The package stability (stable, testing, unstable)" | ||
required: true | ||
artifactory_token: | ||
description: "Artifactory token" | ||
required: true | ||
release_type: | ||
description: "Type of release (hotfix, release)" | ||
required: true | ||
release_cloud: | ||
description: "Release context (cloud or not cloud)" | ||
required: true | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Use cache DEB files | ||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | ||
with: | ||
path: ./*.deb | ||
key: ${{ inputs.cache_key }} | ||
fail-on-cache-miss: true | ||
|
||
- uses: jfrog/setup-jfrog-cli@0f30b43d62ccad81fba40748d2c671c4665b2d27 # v3.5.3 | ||
env: | ||
JF_URL: https://centreon.jfrog.io | ||
JF_ACCESS_TOKEN: ${{ inputs.artifactory_token }} | ||
|
||
- name: Publish DEBs | ||
run: | | ||
FILES="*.deb" | ||
# DEBUG | ||
echo "[DEBUG] - Version: ${{ inputs.version }}" | ||
echo "[DEBUG] - Distrib: ${{ inputs.distrib }}" | ||
echo "[DEBUG] - module_name: ${{ inputs.module_name }}" | ||
echo "[DEBUG] - release_cloud: ${{ inputs.release_cloud }}" | ||
echo "[DEBUG] - release_type: ${{ inputs.release_type }}" | ||
echo "[DEBUG] - stability: ${{ inputs.stability }}" | ||
# Make sure all required inputs are NOT empty | ||
if [[ -z "${{ inputs.module_name }}" || -z "${{ inputs.distrib }}" || -z ${{ inputs.stability }} || -z ${{ inputs.version }} || -z ${{ inputs.release_cloud }} || -z ${{ inputs.release_type }} ]]; then | ||
echo "Some mandatory inputs are empty, please check the logs." | ||
exit 1 | ||
fi | ||
# Handle either standard debian or ubuntu repository path | ||
if [[ "${{ inputs.distrib }}" == "jammy" ]]; then | ||
ROOT_REPO_PATH="ubuntu-standard-${{ inputs.version }}-${{ inputs.stability }}" | ||
else | ||
ROOT_REPO_PATH="apt-standard-${{ inputs.version }}-${{ inputs.stability }}" | ||
fi | ||
for FILE in $FILES; do | ||
echo "[DEBUG] - File: $FILE" | ||
VERSION=${{ inputs.version }} | ||
DISTRIB=$(echo $FILE | cut -d '_' -f2 | cut -d '-' -f2) | ||
ARCH=$(echo $FILE | cut -d '_' -f3 | cut -d '.' -f1) | ||
echo "[DEBUG] - Version: $VERSION" | ||
jf rt upload "$FILE" "$ROOT_REPO_PATH/pool/${{ inputs.module_name }}/" --deb "${{ inputs.distrib }}/main/$ARCH" --flat | ||
done | ||
shell: bash |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
name: "rpm-delivery" | ||
description: "Deliver rpm packages" | ||
inputs: | ||
module_name: | ||
description: "The package module name" | ||
required: true | ||
distrib: | ||
description: "The distribution used for packaging" | ||
required: true | ||
version: | ||
description: "Centreon packaged major version" | ||
required: true | ||
cache_key: | ||
description: "The cached package key" | ||
required: true | ||
stability: | ||
description: "The package stability (stable, testing, unstable)" | ||
required: true | ||
artifactory_token: | ||
description: "Artifactory token" | ||
required: true | ||
release_type: | ||
description: "Type of release (hotfix, release)" | ||
required: true | ||
release_cloud: | ||
description: "Release context (cloud or not cloud)" | ||
required: true | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Use cache RPM files | ||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | ||
with: | ||
path: ./*.rpm | ||
key: ${{ inputs.cache_key }} | ||
fail-on-cache-miss: true | ||
|
||
- uses: jfrog/setup-jfrog-cli@26da2259ee7690e63b5410d7451b2938d08ce1f9 # v4.0.0 | ||
env: | ||
JF_URL: https://centreon.jfrog.io | ||
JF_ACCESS_TOKEN: ${{ inputs.artifactory_token }} | ||
|
||
- name: Publish RPMs | ||
run: | | ||
set -eux | ||
FILES="*.rpm" | ||
if [ -z "${{ inputs.module_name }}" ]; then | ||
echo "module name is required" | ||
exit 1 | ||
fi | ||
if [ -z "${{ inputs.distrib }}" ]; then | ||
echo "distrib is required" | ||
exit 1 | ||
fi | ||
# DEBUG | ||
echo "[DEBUG] - Version: ${{ inputs.version }}" | ||
echo "[DEBUG] - Distrib: ${{ inputs.distrib }}" | ||
echo "[DEBUG] - module_name: ${{ inputs.module_name }}" | ||
echo "[DEBUG] - release_cloud: ${{ inputs.release_cloud }}" | ||
echo "[DEBUG] - release_type: ${{ inputs.release_type }}" | ||
echo "[DEBUG] - stability: ${{ inputs.stability }}" | ||
# Make sure all required inputs are NOT empty | ||
if [[ -z "${{ inputs.module_name }}" || -z "${{ inputs.distrib }}" || -z ${{ inputs.stability }} || -z ${{ inputs.version }} || -z ${{ inputs.release_cloud }} || -z ${{ inputs.release_type }} ]]; then | ||
echo "Some mandatory inputs are empty, please check the logs." | ||
exit 1 | ||
fi | ||
# Create ARCH dirs | ||
mkdir noarch x86_64 | ||
# Get ARCH target for files to deliver and regroupe them by ARCH | ||
for FILE in $FILES; do | ||
echo "[DEBUG] - File: $FILE" | ||
ARCH=$(echo $FILE | grep -oP '(x86_64|noarch)') | ||
echo "[DEBUG] - Arch: $ARCH" | ||
mv "$FILE" "$ARCH" | ||
done | ||
# Build upload target path based on release_cloud and release_type values | ||
# if cloud + hotfix or cloud + release, deliver to internal testing-<release_type> | ||
# if cloud + develop, delivery to internal unstable | ||
# if non-cloud, delivery to onprem testing or unstable | ||
# CLOUD + HOTFIX + REPO STANDARD INTERNAL OR CLOUD + RELEASE + REPO STANDARD INTERNAL | ||
if [[ ${{ inputs.release_cloud }} -eq 1 ]] && ([[ ${{ inputs.release_type }} == "hotfix" ]] || [[ ${{ inputs.release_type }} == "release" ]]); then | ||
echo "[DEBUG] : Release cloud + ${{ inputs.release_type }}, using rpm-standard-internal." | ||
ROOT_REPO_PATHS="rpm-standard-internal" | ||
UPLOAD_REPO_PATH="${{ inputs.version }}/${{ inputs.distrib }}/${{ inputs.stability }}-${{ inputs.release_type }}/$ARCH/${{ inputs.module_name }}/" | ||
# CLOUD + NOT HOTFIX OR CLOUD + NOT RELEASE + REPO STANDARD INTERNAL | ||
elif [[ ${{ inputs.release_cloud }} -eq 1 ]] && ([[ ${{ inputs.release_type }} != "hotfix" ]] || [[ ${{ inputs.release_type }} != "release" ]]); then | ||
echo "[DEBUG] : Release cloud + NOT ${{ inputs.release_type }}, using rpm-standard-internal." | ||
ROOT_REPO_PATHS="rpm-standard-internal" | ||
UPLOAD_REPO_PATH="${{ inputs.version }}/${{ inputs.distrib }}/${{ inputs.stability }}-${{ inputs.release_type }}/$ARCH/${{ inputs.module_name }}/" | ||
# NON-CLOUD + (HOTFIX OR RELEASE) + REPO STANDARD | ||
elif [[ ${{ inputs.release_cloud }} -eq 0 ]]; then | ||
echo "[DEBUG] : NOT Release cloud + ${{ inputs.release_type }}, using rpm-standard." | ||
ROOT_REPO_PATHS="rpm-standard" | ||
UPLOAD_REPO_PATH="${{ inputs.version }}/${{ inputs.distrib }}/${{ inputs.stability }}/$ARCH/${{ inputs.module_name }}/" | ||
# ANYTHING ELSE | ||
else | ||
echo "::error:: Invalid combination of release_type [${{ inputs.release_type }}] and release_cloud [${{ inputs.release_cloud }}]" | ||
exit 1 | ||
fi | ||
# Deliver based on inputs | ||
for ROOT_REPO_PATH in "$ROOT_REPO_PATHS"; do | ||
for ARCH in "noarch" "x86_64"; do | ||
if [ "$(ls -A $ARCH)" ]; then | ||
if [ "${{ inputs.stability }}" == "stable" ]; then | ||
echo "[DEBUG] - Stability is ${{ inputs.stability }}, not delivering." | ||
elif [ "${{ inputs.stability }}" == "testing" ]; then | ||
jf rt upload "$ARCH/*.rpm" "$ROOT_REPO_PATH/$UPLOAD_REPO_PATH" --sync-deletes="$ROOT_REPO_PATH/$UPLOAD_REPO_PATH" --flat | ||
else | ||
jf rt upload "$ARCH/*.rpm" "$ROOT_REPO_PATH/${{ inputs.version }}/${{ inputs.distrib }}/${{ inputs.stability }}/$ARCH/${{ inputs.module_name }}/" --sync-deletes="$ROOT_REPO_PATH/${{ inputs.version }}/${{ inputs.distrib }}/${{ inputs.stability }}/$ARCH/${{ inputs.module_name }}/" --flat | ||
fi | ||
fi | ||
done | ||
done | ||
shell: bash |
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
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
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
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
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
Oops, something went wrong.