Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

23.04.x tun #1270

Draft
wants to merge 10 commits into
base: 23.04.x
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 95 additions & 88 deletions .github/actions/release/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ runs:
steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0


- name: Get released versions for components
run: |
Expand Down Expand Up @@ -90,6 +93,10 @@ runs:
fi
done

## REMOVE ME
NEW_STABLE_TAGS=("23.04.14")
##

echo "New tags to be published from new release that were not in previous releases:"
printf '%s\n' "${NEW_STABLE_TAGS[@]}"

Expand All @@ -99,72 +106,72 @@ runs:
echo "SCOPE_VERSION=$SCOPE_VERSION" >> "$GITHUB_ENV"
shell: bash

- name: Add new release tags to stable branch
run: |
set -eux
# - name: Add new release tags to stable branch
# run: |
# set -eux

# Add new stable tags to stable branch
echo "Configuring git."
git config --global user.email "[email protected]"
git config --global user.name "Centreon"
# # Add new stable tags to stable branch
# echo "Configuring git."
# git config --global user.email "[email protected]"
# git config --global user.name "Centreon"

# Create release tags on git for each release components
# Abort if no tags or existing tag
echo "Creating release tags."
for TAG in ${NEW_STABLE_TAGS[@]}; do
if [ -z $(git tag --list "$TAG" | head -n 1) ] && [ -n $TAG ]; then
git tag -a "$TAG" -m "$TAG"
git push --follow-tags
echo "::notice::Tagging stable branch with $TAG."
else
echo "::error::Release tag $TAG already exists, exiting."
exit 1
fi
done
shell: bash
# # Create release tags on git for each release components
# # Abort if no tags or existing tag
# echo "Creating release tags."
# for TAG in ${NEW_STABLE_TAGS[@]}; do
# if [ -z $(git tag --list "$TAG" | head -n 1) ] && [ -n $TAG ]; then
# git tag -a "$TAG" -m "$TAG"
# git push --follow-tags
# echo "::notice::Tagging stable branch with $TAG."
# else
# echo "::error::Release tag $TAG already exists, exiting."
# #exit 1
# fi
# done
# shell: bash

- name: Create GITHUB releases from new release tags
run: |
set -eux
# - name: Create GITHUB releases from new release tags
# run: |
# set -eux

# Install gh cli
echo "Installing GH CLI."
if ! command -v gh &> /dev/null; then
echo "Installing GH CLI."
type -p curl >/dev/null || (sudo apt-get update && sudo apt-get install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt-get update
sudo apt-get install gh -y
else
echo "GH CLI is already installed."
fi
# # Install gh cli
# echo "Installing GH CLI."
# if ! command -v gh &> /dev/null; then
# echo "Installing GH CLI."
# type -p curl >/dev/null || (sudo apt-get update && sudo apt-get install curl -y)
# curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
# sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
# echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
# sudo apt-get update
# sudo apt-get install gh -y
# else
# echo "GH CLI is already installed."
# fi

# Rebuild NEW_STABLE_TAGS as an array
# for i in ${NEW_STABLE_TAGS[@]}; do
# NEW_RELEASE_TAGS+=("$i")
# done
# # Rebuild NEW_STABLE_TAGS as an array
# # for i in ${NEW_STABLE_TAGS[@]}; do
# # NEW_RELEASE_TAGS+=("$i")
# # done

# Create GITHUB release for each release components
# Abort if no tags
echo "Creating GITHUB releases."
for TAG in ${NEW_STABLE_TAGS[@]}; do
if [ -n $TAG ]; then
echo "Creating GITHUB release with title $TAG for tag $TAG."
gh release create $TAG --target "${{ inputs.github_ref_name }}" --title "$TAG" --verify-tag
else
echo "::error::Release tag $TAG was empty, exiting."
exit 1
fi
done
shell: bash
env:
GH_TOKEN: ${{ github.token }}
# # Create GITHUB release for each release components
# # Abort if no tags
# echo "Creating GITHUB releases."
# for TAG in ${NEW_STABLE_TAGS[@]}; do
# if [ -n $TAG ]; then
# echo "Creating GITHUB release with title $TAG for tag $TAG."
# gh release create $TAG --target "${{ inputs.github_ref_name }}" --title "$TAG" --verify-tag
# else
# echo "::error::Release tag $TAG was empty, exiting."
# exit 1
# fi
# done
# shell: bash
# env:
# GH_TOKEN: ${{ github.token }}

- name: Create stable JIRA versions from new release tags
run: |
set -eux
set -ux

# Call JIRA to provide new jira versions to create
# Webhook url
Expand Down Expand Up @@ -217,41 +224,41 @@ runs:
done
shell: bash

- name: Trigger release communication for new releases
run: |
set -eux
# - name: Trigger release communication for new releases
# run: |
# set -eux

MAJOR_VERSION=$CURRENT_STABLE_BRANCH_MAJOR_VERSION
# MAJOR_VERSION=$CURRENT_STABLE_BRANCH_MAJOR_VERSION

# Webhook url
JIRA_INCOMING_WEBHOOK="${{ inputs.jira_webhook_url }}"
# # Webhook url
# JIRA_INCOMING_WEBHOOK="${{ inputs.jira_webhook_url }}"

# Rebuild NEW_STABLE_TAGS as an array (required to build a proper json)
for i in ${NEW_STABLE_TAGS[@]}; do
if [ -n "$i" ]; then
NEW_RELEASE_TAGS+=("$i")
else
echo "::error::Release tag $i was empty, exiting."
exit 1
fi
done
# # Rebuild NEW_STABLE_TAGS as an array (required to build a proper json)
# for i in ${NEW_STABLE_TAGS[@]}; do
# if [ -n "$i" ]; then
# NEW_RELEASE_TAGS+=("$i")
# else
# echo "::error::Release tag $i was empty, exiting."
# exit 1
# fi
# done

# Build JSON structure with released versions
JSON_TAGS=$(jq -n '{componentList:$ARGS.positional}' --args "${NEW_RELEASE_TAGS[@]}")
JSON_VERSION_INFO=$(jq -n --arg majorVersion "$MAJOR_VERSION" --arg scopeVersion "$SCOPE_VERSION" '$ARGS.named' )
RELEASE_JSON=$(echo "$JSON_VERSION_INFO" | jq -c --argjson json_tags "$JSON_TAGS" '. += $json_tags')
# # Build JSON structure with released versions
# JSON_TAGS=$(jq -n '{componentList:$ARGS.positional}' --args "${NEW_STABLE_TAGS[@]}")
# JSON_VERSION_INFO=$(jq -n --arg majorVersion "$MAJOR_VERSION" --arg scopeVersion "$SCOPE_VERSION" '$ARGS.named' )
# RELEASE_JSON=$(echo "$JSON_VERSION_INFO" | jq -c --argjson json_tags "$JSON_TAGS" '. += $json_tags')

# DEBUG
echo "JSON_TAGS: \r\n$JSON_TAGS"
echo "JSON_VERSION_INFO: $JSON_VERSION_INFO"
echo "Sending to JIRA automation: \r\n$RELEASE_JSON"
# # DEBUG
# echo "JSON_TAGS: \r\n$JSON_TAGS"
# echo "JSON_VERSION_INFO: $JSON_VERSION_INFO"
# echo "Sending to JIRA automation: \r\n$RELEASE_JSON"

# Call jira webhook to trigger the communication workflow
# and provide versions data for communication
curl \
"$JIRA_INCOMING_WEBHOOK" \
-X POST \
-H 'Content-type: application/json' \
--data "$RELEASE_JSON"
# # Call jira webhook to trigger the communication workflow
# # and provide versions data for communication
# curl \
# "$JIRA_INCOMING_WEBHOOK" \
# -X POST \
# -H 'Content-type: application/json' \
# --data "$RELEASE_JSON"

shell: bash
# shell: bash
2 changes: 1 addition & 1 deletion .github/workflows/centreon-collect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ jobs:

promote:
needs: [get-version]
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) && github.event_name != 'workflow_dispatch' }}
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) }}
runs-on: [self-hosted, common]
strategy:
matrix:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/get-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,12 @@ jobs:
GITHUB_RELEASE_TYPE=$(echo $BRANCHNAME |cut -d '-' -f 1)

case "$BRANCHNAME" in
master | [2-9][0-9].[0-9][0-9].x)
master)
echo "release=1" >> $GITHUB_OUTPUT
echo "release_cloud=1" >> $GITHUB_OUTPUT
echo "release_type=$GITHUB_RELEASE_TYPE" >> $GITHUB_OUTPUT
;;
[2-9][0-9].[0-9][0-9].x|23.04.x-tun)
echo "release=1" >> $GITHUB_OUTPUT
echo "release_cloud=$GITHUB_RELEASE_CLOUD" >> $GITHUB_OUTPUT
echo "release_type=$GITHUB_RELEASE_TYPE" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -132,7 +137,7 @@ jobs:
STABILITY="testing"
ENV="testing"
;;
master | [2-9][0-9].[0-9][0-9].x)
master | [2-9][0-9].[0-9][0-9].x | 23.04.x-tun)
STABILITY="stable"
ENV="production"
;;
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,20 @@

jobs:
release:
if: ${{ github.event.pull_request.merged == true }}
#if: ${{ github.event.pull_request.merged == true }}

Check warning on line 23 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / yaml-lint

23:6 [comments] missing starting space in comment
runs-on: ubuntu-22.04
steps:
- name: Check base_ref
run: |
set -eu
# Check if github.base_ref is either master or any of the supported version ones
# This must never run on any other than master and supported version base_ref
if [[ "${{ github.base_ref }}" == 'master' || "${{ github.base_ref }}" =~ ^[2-9][0-9].[0-9][0-9].x ]];then
echo "[DEBUG] base_ref is valid: ${{ github.base_ref }}"
else
echo "::error::base_ref is not valid (${{ github.base_ref }}), exiting."
exit 1
fi
# if [[ "${{ github.base_ref }}" == 'master' || "${{ github.base_ref }}" =~ ^[2-9][0-9].[0-9][0-9].x ]];then
# echo "[DEBUG] base_ref is valid: ${{ github.base_ref }}"
# else
# echo "::error::base_ref is not valid (${{ github.base_ref }}), exiting."
# exit 1
# fi
shell: bash

- name: Checkout sources
Expand All @@ -45,7 +45,7 @@
id: release
uses: ./.github/actions/release
with:
github_ref_name: ${{ github.base_ref }}
github_ref_name: "23.04.x"
jira_project_id: ${{ secrets.JIRA_PROJECT_ID }}
jira_user_email: ${{ secrets.XRAY_JIRA_USER_EMAIL }}
jira_api_token: ${{ secrets.XRAY_JIRA_TOKEN }}
Expand Down
Loading