CentOS Stream compose trigger #1627
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: CentOS Stream compose trigger | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 3 * * *' | |
- cron: '0 15 * * *' | |
env: | |
COMPOSE_URL_CS9: https://composes.stream.centos.org/production | |
jobs: | |
check-compose: | |
# Do not run this job on any fork repos | |
if: github.repository == 'virt-s1/rhel-edge' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check CentOS Stream 9 compose | |
id: check_compose_id_cs9 | |
run: | | |
CURRENT_COMPOSE_CS9=$(curl -s "${COMPOSE_URL_CS9}/" | grep -ioE ">CentOS-Stream-9-.*/<" | tr -d '>/<' | tail -1) | |
curl -s ${COMPOSE_URL_CS9}/${CURRENT_COMPOSE_CS9}/STATUS --output STATUS_CS9 | |
STATUS_CS9=$(cat STATUS_CS9) | |
if [[ "$STATUS_CS9" == "FINISHED" ]]; then | |
COMPOSE_ID_CS9=$CURRENT_COMPOSE_CS9 | |
TESTED_COMPOSE_CS9=( $( cat compose/compose.cs9 ) ) | |
if [[ " ${TESTED_COMPOSE_CS9[*]} " =~ "$COMPOSE_ID_CS9" ]]; then | |
COMPOSE_ID_CS9="false" | |
fi | |
else | |
COMPOSE_ID_CS9="false" | |
fi | |
if [[ "$COMPOSE_ID_CS9" != "false" ]]; then | |
gh pr list -R virt-s1/rhel-edge --state open --json title --jq '.[].title' > PR_LIST_CS9 | |
PR_LIST_CS9=$(cat PR_LIST_CS9) | |
if [[ $PR_LIST_CS9 == *"$COMPOSE_ID_CS9"* ]]; then | |
echo "pr_running_cs9=true" >> $GITHUB_OUTPUT | |
else | |
echo "pr_running_cs9=false" >> $GITHUB_OUTPUT | |
fi | |
OSBUILD_VERSION_CS9=$(curl -s "${COMPOSE_URL_CS9}/${COMPOSE_ID_CS9}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-[0-9].*<" | tr -d "><") | |
OSBUILD_COMPOSER_VERSION_CS9=$(curl -s "${COMPOSE_URL_CS9}/${COMPOSE_ID_CS9}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-composer-[0-9].*<" | tr -d "><") | |
COMPOSER_CLI_VERSION_CS9=$(curl -s "${COMPOSE_URL_CS9}/${COMPOSE_ID_CS9}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">weldr-client-[0-9].*<" | tr -d "><") | |
echo "osbuild_version_cs9=$OSBUILD_VERSION_CS9" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_cs9=$OSBUILD_COMPOSER_VERSION_CS9" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_cs9=$COMPOSER_CLI_VERSION_CS9" >> $GITHUB_OUTPUT | |
else | |
echo "osbuild_version_cs9=Null" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_cs9=Null" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_cs9=Null" >> $GITHUB_OUTPUT | |
fi | |
echo "cs9_compose=$COMPOSE_ID_CS9" >> $GITHUB_OUTPUT | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
cs9_compose: ${{ steps.check_compose_id_cs9.outputs.cs9_compose }} | |
osbuild_version_cs9: ${{ steps.check_compose_id_cs9.outputs.osbuild_version_cs9 }} | |
osbuild_composer_version_cs9: ${{ steps.check_compose_id_cs9.outputs.osbuild_composer_version_cs9 }} | |
composer_cli_version_cs9: ${{ steps.check_compose_id_cs9.outputs.composer_cli_version_cs9 }} | |
pr_running_cs9: ${{ steps.check_compose_id_cs9.outputs.pr_running_cs9 }} | |
centos-stream-9: | |
needs: check-compose | |
if: ${{ needs.check-compose.outputs.cs9_compose != 'false' && needs.check-compose.outputs.pr_running_cs9 == 'false' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add new compose id in compose.cs9 | |
run: | | |
compose_id="${{ needs.check-compose.outputs.cs9_compose }}" | |
echo $compose_id >> compose/compose.cs9 | |
cat compose/compose.cs9 | |
- name: Get current date | |
id: date | |
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | |
- name: Create Pull Request | |
id: cpr | |
uses: peter-evans/create-pull-request@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
commit-message: "${{ needs.check-compose.outputs.cs9_compose }} - ${{ steps.date.outputs.date }}" | |
committer: cloudkitebot <[email protected]> | |
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> | |
branch: cpr | |
branch-suffix: random | |
delete-branch: true | |
title: "${{ needs.check-compose.outputs.cs9_compose }} - ${{ steps.date.outputs.date }}" | |
labels: auto-merge,CentOS-Stream-9 | |
body: | | |
CentOS Stream 9 compose ${{ needs.check-compose.outputs.cs9_compose }} | |
- Date: ${{ steps.date.outputs.date }} | |
- Compose URL: "${{ env.COMPOSE_URL_CS9 }}/${{ needs.check-compose.outputs.cs9_compose }}" | |
- Packages: | |
- ${{ needs.check-compose.outputs.osbuild_version_cs9 }} | |
- ${{ needs.check-compose.outputs.osbuild_composer_version_cs9 }} | |
- ${{ needs.check-compose.outputs.composer_cli_version_cs9 }} | |
- name: Enable Pull Request Automerge | |
if: steps.cpr.outputs.pull-request-operation == 'created' | |
uses: peter-evans/enable-pull-request-automerge@v2 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
pull-request-number: ${{ steps.cpr.outputs.pull-request-number }} | |
merge-method: rebase | |
- name: Add a comment to trigger test workflow | |
uses: peter-evans/create-or-update-comment@v2 | |
with: | |
token: ${{ secrets.PAT }} | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} | |
body: /test-cs9 | |
- name: Create a project card to track compose test result | |
uses: peter-evans/create-or-update-project-card@v2 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
project-name: RHEL Compose Test | |
column-name: CentOS-Stream-9 | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} |