RHEL 8 compose trigger #3311
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: RHEL 8 compose trigger | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 1 * * *' | |
- cron: '0 7 * * *' | |
- cron: '0 13 * * *' | |
- cron: '0 19 * * *' | |
env: | |
COMPOSE_URL_88: "http://${{ secrets.DOWNLOAD_NODE }}/rhel-8/nightly/updates/RHEL-8" | |
COMPOSE_URL_810: "http://${{ secrets.DOWNLOAD_NODE }}/rhel-8/nightly/RHEL-8" | |
jobs: | |
check-compose: | |
# Do not run this job on any fork repos | |
if: github.repository == 'virt-s1/rhel-edge' | |
runs-on: container-runner | |
container: quay.io/fedora/fedora:38-x86_64 | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo dnf install -y gh | |
- name: Check RHEL 8.8 compose | |
id: check_compose_id_88 | |
run: | | |
curl -s ${COMPOSE_URL_88}/latest-RHEL-8.8.0/STATUS --output STATUS_88 | |
STATUS_88=$(cat STATUS_88) | |
if [[ "$STATUS_88" == "FINISHED" ]]; then | |
curl -s ${COMPOSE_URL_88}/latest-RHEL-8.8.0/COMPOSE_ID --output COMPOSE_ID_88 | |
COMPOSE_ID_88=$(cat COMPOSE_ID_88) | |
TESTED_COMPOSE_88=( $( cat compose/compose.88 ) ) | |
if [[ " ${TESTED_COMPOSE_88[*]} " =~ "$COMPOSE_ID_88" ]]; then | |
COMPOSE_ID_88="false" | |
fi | |
else | |
COMPOSE_ID_88="false" | |
fi | |
if [[ "$COMPOSE_ID_88" != "false" ]]; then | |
gh pr list -R virt-s1/rhel-edge --state open --json title --jq '.[].title' > PR_LIST_88 | |
PR_LIST_88=$(cat PR_LIST_88) | |
if [[ $PR_LIST_88 == *"$COMPOSE_ID_88"* ]]; then | |
echo "pr_running_88=true" >> $GITHUB_OUTPUT | |
else | |
echo "pr_running_88=false" >> $GITHUB_OUTPUT | |
fi | |
OSBUILD_VERSION_88=$(curl -s "${COMPOSE_URL_88}/${COMPOSE_ID_88}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-[0-9].*<" | tr -d "><") | |
OSBUILD_COMPOSER_VERSION_88=$(curl -s "${COMPOSE_URL_88}/${COMPOSE_ID_88}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-composer-[0-9].*<" | tr -d "><") | |
COMPOSER_CLI_VERSION_88=$(curl -s "${COMPOSE_URL_88}/${COMPOSE_ID_88}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">weldr-client-[0-9].*<" | tr -d "><") | |
echo "osbuild_version_88=$OSBUILD_VERSION_88" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_88=$OSBUILD_COMPOSER_VERSION_88" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_88=$COMPOSER_CLI_VERSION_88" >> $GITHUB_OUTPUT | |
else | |
echo "osbuild_version_88=Null" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_88=Null" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_88=Null" >> $GITHUB_OUTPUT | |
fi | |
echo "rhel88_compose=$COMPOSE_ID_88" >> $GITHUB_OUTPUT | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check RHEL 8.10 compose | |
id: check_compose_id_810 | |
run: | | |
curl -s ${COMPOSE_URL_810}/latest-RHEL-8.10.0/STATUS --output STATUS_810 | |
STATUS_810=$(cat STATUS_810) | |
if [[ "$STATUS_810" == "FINISHED" ]]; then | |
curl -s ${COMPOSE_URL_810}/latest-RHEL-8.10.0/COMPOSE_ID --output COMPOSE_ID_810 | |
COMPOSE_ID_810=$(cat COMPOSE_ID_810) | |
TESTED_COMPOSE_810=( $( cat compose/compose.810 ) ) | |
if [[ " ${TESTED_COMPOSE_810[*]} " =~ "$COMPOSE_ID_810" ]]; then | |
COMPOSE_ID_810="false" | |
fi | |
else | |
COMPOSE_ID_810="false" | |
fi | |
if [[ "$COMPOSE_ID_810" != "false" ]]; then | |
gh pr list -R virt-s1/rhel-edge --state open --json title --jq '.[].title' > PR_LIST_810 | |
PR_LIST_810=$(cat PR_LIST_810) | |
if [[ $PR_LIST_810 == *"$COMPOSE_ID_810"* ]]; then | |
echo "pr_running_810=true" >> $GITHUB_OUTPUT | |
else | |
echo "pr_running_810=false" >> $GITHUB_OUTPUT | |
fi | |
OSBUILD_VERSION_810=$(curl -s "${COMPOSE_URL_810}/${COMPOSE_ID_810}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-[0-9].*<" | tr -d "><") | |
OSBUILD_COMPOSER_VERSION_810=$(curl -s "${COMPOSE_URL_810}/${COMPOSE_ID_810}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">osbuild-composer-[0-9].*<" | tr -d "><") | |
COMPOSER_CLI_VERSION_810=$(curl -s "${COMPOSE_URL_810}/${COMPOSE_ID_810}/compose/AppStream/x86_64/os/Packages/" | grep -ioE ">weldr-client-[0-9].*<" | tr -d "><") | |
echo "osbuild_version_810=$OSBUILD_VERSION_810" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_810=$OSBUILD_COMPOSER_VERSION_810" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_810=$COMPOSER_CLI_VERSION_810" >> $GITHUB_OUTPUT | |
else | |
echo "osbuild_version_810=Null" >> $GITHUB_OUTPUT | |
echo "osbuild_composer_version_810=Null" >> $GITHUB_OUTPUT | |
echo "composer_cli_version_810=Null" >> $GITHUB_OUTPUT | |
fi | |
echo "rhel810_compose=$COMPOSE_ID_810" >> $GITHUB_OUTPUT | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
rhel88_compose: ${{ steps.check_compose_id_88.outputs.rhel88_compose }} | |
rhel810_compose: ${{ steps.check_compose_id_810.outputs.rhel810_compose }} | |
osbuild_version_88: ${{ steps.check_compose_id_88.outputs.osbuild_version_88 }} | |
osbuild_composer_version_88: ${{ steps.check_compose_id_88.outputs.osbuild_composer_version_88 }} | |
composer_cli_version_88: ${{ steps.check_compose_id_88.outputs.composer_cli_version_88 }} | |
osbuild_version_810: ${{ steps.check_compose_id_810.outputs.osbuild_version_810 }} | |
osbuild_composer_version_810: ${{ steps.check_compose_id_810.outputs.osbuild_composer_version_810 }} | |
composer_cli_version_810: ${{ steps.check_compose_id_810.outputs.composer_cli_version_810 }} | |
pr_running_88: ${{ steps.check_compose_id_88.outputs.pr_running_88 }} | |
pr_running_810: ${{ steps.check_compose_id_810.outputs.pr_running_810 }} | |
rhel-8-8: | |
needs: check-compose | |
if: ${{ needs.check-compose.outputs.rhel88_compose != 'false' && needs.check-compose.outputs.pr_running_88 == 'false' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add new compose id in compose.88 | |
run: | | |
compose_id="${{ needs.check-compose.outputs.rhel88_compose }}" | |
echo $compose_id >> compose/compose.88 | |
cat compose/compose.88 | |
- 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.rhel88_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.rhel88_compose }} - ${{ steps.date.outputs.date }}" | |
labels: auto-merge,RHEL-8.8.0 | |
body: | | |
RHEL 8.8 compose ${{ needs.check-compose.outputs.rhel88_compose }} | |
- Date: ${{ steps.date.outputs.date }} | |
- Packages: | |
- ${{ needs.check-compose.outputs.osbuild_version_88 }} | |
- ${{ needs.check-compose.outputs.osbuild_composer_version_88 }} | |
- ${{ needs.check-compose.outputs.composer_cli_version_88 }} | |
- 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@v1 | |
with: | |
token: ${{ secrets.PAT }} | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} | |
body: /test-rhel-8-8 | |
- 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: RHEL-8-8 | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} | |
rhel-8-10: | |
needs: check-compose | |
if: ${{ needs.check-compose.outputs.rhel810_compose != 'false' && needs.check-compose.outputs.pr_running_810 == 'false' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add new compose id in compose.810 | |
run: | | |
compose_id="${{ needs.check-compose.outputs.rhel810_compose }}" | |
echo $compose_id >> compose/compose.810 | |
cat compose/compose.810 | |
- 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.rhel810_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.rhel810_compose }} - ${{ steps.date.outputs.date }}" | |
labels: auto-merge,RHEL-8.10.0 | |
body: | | |
RHEL 8.10 compose ${{ needs.check-compose.outputs.rhel810_compose }} | |
- Date: ${{ steps.date.outputs.date }} | |
- Packages: | |
- ${{ needs.check-compose.outputs.osbuild_version_810 }} | |
- ${{ needs.check-compose.outputs.osbuild_composer_version_810 }} | |
- ${{ needs.check-compose.outputs.composer_cli_version_810 }} | |
- 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@v1 | |
with: | |
token: ${{ secrets.PAT }} | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} | |
body: /test-rhel-8-10 | |
- 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: RHEL-8-10 | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} |