Skip to content

osbuild-composer-ci #253

osbuild-composer-ci

osbuild-composer-ci #253

Workflow file for this run

---
name: RHEL for Edge test on Fedora 39
on:
# Triggered by osbuild-composer CI from gitlab
repository_dispatch:
types: [osbuild-composer-ci]
jobs:
pr-info:
runs-on: ubuntu-latest
steps:
- name: Get PR number from string PR-xxxx
id: pr-num
run: |
PR_NUM=$(echo "${{ github.event.client_payload.pr_number }}" | cut -d'-' -f 2)
echo "pr_number=$PR_NUM" >> $GITHUB_OUTPUT
- name: Get information for osbuild-composer pull request
uses: octokit/[email protected]
id: pr-api
with:
route: GET /repos/osbuild/osbuild-composer/pulls/${{ steps.pr-num.outputs.pr_number }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
outputs:
sha: ${{ fromJson(steps.pr-api.outputs.data).head.sha }}
sender_repo: ${{ fromJson(steps.pr-api.outputs.data).head.repo.full_name }}
sender_branch: ${{ fromJson(steps.pr-api.outputs.data).head.ref }}
pre-edge-commit-f39:
needs: pr-info
runs-on: ubuntu-latest
env:
STATUS_NAME: Tests / edge-commit-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "pre-edge-commit-f39" '.jobs | map(select(.name == "pre-edge-commit-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Runner has been deploying...'
target_url: '${{ steps.job-log-url.outputs.html_url }}'
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
edge-commit-f39:
needs: [pr-info, pre-edge-commit-f39]
runs-on: [kite, x86_64, gcp, fedora-39, medium]
timeout-minutes: 90
env:
STATUS_NAME: Tests / edge-commit-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
sudo dnf install -y jq
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "edge-commit-f39" '.jobs | map(select(.name == "edge-commit-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Test has been running...'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Clone repository
uses: actions/checkout@v3
with:
repository: ${{ needs.pr-info.outputs.sender_repo }}
ref: ${{ needs.pr-info.outputs.sender_branch }}
fetch-depth: 0
- name: Make a deployment
run: schutzbot/deploy.sh
env:
GIT_COMMIT: ${{ needs.pr-info.outputs.sha }}
timeout-minutes: 20
- name: run ostree.sh
run: /usr/libexec/tests/osbuild-composer/ostree.sh
timeout-minutes: 40
- name: Set non cancelled result status
if: ${{ !cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: ${{ job.status }}
description: 'Fedora 39 - Test got ${{ job.status }}'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Set cancelled result status
if: ${{ cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: error
description: 'Fedora 39 - Test got error'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: edge-commit-f39
path: |
/tmp/artifacts/*.json
/tmp/artifacts/*.log
pre-edge-installer-f39:
needs: pr-info
runs-on: ubuntu-latest
env:
STATUS_NAME: Tests / edge-installer-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "pre-edge-installer-f39" '.jobs | map(select(.name == "pre-edge-installer-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Runner has been deploying...'
target_url: '${{ steps.job-log-url.outputs.html_url }}'
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
edge-installer-f39:
needs: [pr-info, pre-edge-installer-f39]
runs-on: [kite, x86_64, rhos-0x, fedora-39, large]
timeout-minutes: 130
env:
STATUS_NAME: Tests / edge-installer-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
sudo dnf install -y jq
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "edge-installer-f39" '.jobs | map(select(.name == "edge-installer-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Test has been running...'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Clone repository
uses: actions/checkout@v3
with:
repository: ${{ needs.pr-info.outputs.sender_repo }}
ref: ${{ needs.pr-info.outputs.sender_branch }}
fetch-depth: 0
- name: Make a deployment
run: schutzbot/deploy.sh
env:
GIT_COMMIT: ${{ needs.pr-info.outputs.sha }}
timeout-minutes: 20
- name: run ostree-ng.sh
run: /usr/libexec/tests/osbuild-composer/ostree-ng.sh
env:
V2_QUAY_USERNAME: ${{ secrets.V2_QUAY_USERNAME }}
V2_QUAY_PASSWORD: ${{ secrets.V2_QUAY_PASSWORD }}
timeout-minutes: 90
- name: Set non cancelled result status
if: ${{ !cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: ${{ job.status }}
description: 'Fedora 39 - Test got ${{ job.status }}'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Set cancelled result status
if: ${{ cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: error
description: 'Fedora 39 - Test got error'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: edge-installer-f39
path: |
/tmp/artifacts/*.json
/tmp/artifacts/*.log
pre-edge-raw-f39:
needs: pr-info
runs-on: ubuntu-latest
env:
STATUS_NAME: Tests / edge-raw-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "pre-edge-raw-f39" '.jobs | map(select(.name == "pre-edge-raw-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Runner has been deploying...'
target_url: '${{ steps.job-log-url.outputs.html_url }}'
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
edge-raw-f39:
needs: [pr-info, pre-edge-raw-f39]
runs-on: [kite, x86_64, gcp, fedora-39, medium]
timeout-minutes: 130
env:
STATUS_NAME: Tests / edge-raw-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
sudo dnf install -y jq
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "edge-raw-f39" '.jobs | map(select(.name == "edge-raw-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Test has been running...'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Clone repository
uses: actions/checkout@v3
with:
repository: ${{ needs.pr-info.outputs.sender_repo }}
ref: ${{ needs.pr-info.outputs.sender_branch }}
fetch-depth: 0
- name: Make a deployment
run: schutzbot/deploy.sh
env:
GIT_COMMIT: ${{ needs.pr-info.outputs.sha }}
timeout-minutes: 20
- name: run ostree-raw-image.sh
run: /usr/libexec/tests/osbuild-composer/ostree-raw-image.sh
env:
EDGE_USER_PASSWORD: foobar
timeout-minutes: 90
- name: Set non cancelled result status
if: ${{ !cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: ${{ job.status }}
description: 'Fedora 39 - Test got ${{ job.status }}'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Set cancelled result status
if: ${{ cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: error
description: 'Fedora 39 - Test got error'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: edge-raw-f39
path: |
/tmp/artifacts/*.json
/tmp/artifacts/*.log
pre-edge-minimal-raw-f39:
needs: pr-info
runs-on: ubuntu-latest
env:
STATUS_NAME: Tests / edge-minimal-raw-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "pre-edge-minimal-raw-f39" '.jobs | map(select(.name == "pre-edge-minimal-raw-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Runner has been deploying...'
target_url: '${{ steps.job-log-url.outputs.html_url }}'
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
edge-minimal-raw-f39:
needs: [pr-info, pre-edge-minimal-raw-f39]
runs-on: [kite, x86_64, gcp, fedora-39, medium]
timeout-minutes: 100
env:
STATUS_NAME: Tests / edge-minimal-raw-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
sudo dnf install -y jq
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "edge-minimal-raw-f39" '.jobs | map(select(.name == "edge-minimal-raw-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Test has been running...'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Clone repository
uses: actions/checkout@v3
with:
repository: ${{ needs.pr-info.outputs.sender_repo }}
ref: ${{ needs.pr-info.outputs.sender_branch }}
fetch-depth: 0
- name: Make a deployment
run: schutzbot/deploy.sh
env:
GIT_COMMIT: ${{ needs.pr-info.outputs.sha }}
timeout-minutes: 20
- name: run minimal-raw.sh
run: /usr/libexec/tests/osbuild-composer/minimal-raw.sh
env:
DOWNLOAD_NODE: ${{ secrets.DOWNLOAD_NODE }}
timeout-minutes: 60
- name: Set non cancelled result status
if: ${{ !cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: ${{ job.status }}
description: 'Fedora 39 - Test got ${{ job.status }}'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Set cancelled result status
if: ${{ cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: error
description: 'Fedora 39 - Test got error'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: edge-minimal-raw-f39
path: |
/tmp/artifacts/*.json
/tmp/artifacts/*.log
pre-edge-qcow2-f39:
needs: pr-info
runs-on: ubuntu-latest
env:
STATUS_NAME: Tests / edge-qcow2-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "pre-edge-qcow2-f39" '.jobs | map(select(.name == "pre-edge-qcow2-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Runner has been deploying...'
target_url: '${{ steps.job-log-url.outputs.html_url }}'
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
edge-qcow2-f39:
needs: [pr-info, pre-edge-qcow2-f39]
runs-on: [kite, x86_64, gcp, fedora-39, medium]
timeout-minutes: 100
env:
STATUS_NAME: Tests / edge-qcow2-f39
steps:
- name: Get Current Job Log URL
id: job-log-url
run: |
sudo dnf install -y jq
JOB_HTML_URL=$(curl --get -Ss -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/osbuild/rhel-edge-ci/actions/runs/${GITHUB_RUN_ID}/jobs?per_page=30" | jq -r --arg job_name "edge-qcow2-f39" '.jobs | map(select(.name == "edge-qcow2-f39")) | .[0].html_url')
echo "html_url=$JOB_HTML_URL" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Fedora 39 - Test has been running...'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Clone repository
uses: actions/checkout@v3
with:
repository: ${{ needs.pr-info.outputs.sender_repo }}
ref: ${{ needs.pr-info.outputs.sender_branch }}
fetch-depth: 0
- name: Make a deployment
run: schutzbot/deploy.sh
env:
GIT_COMMIT: ${{ needs.pr-info.outputs.sha }}
timeout-minutes: 20
- name: run ostree-iot-qcow2.sh
run: /usr/libexec/tests/osbuild-composer/ostree-iot-qcow2.sh
env:
DOWNLOAD_NODE: ${{ secrets.DOWNLOAD_NODE }}
timeout-minutes: 60
- name: Set non cancelled result status
if: ${{ !cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: ${{ job.status }}
description: 'Fedora 39 - Test got ${{ job.status }}'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: Set cancelled result status
if: ${{ cancelled() }}
uses: octokit/[email protected]
with:
route: 'POST /repos/osbuild/osbuild-composer/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: error
description: 'Fedora 39 - Test got error'
target_url: ${{ steps.job-log-url.outputs.html_url }}
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: edge-qcow2-f39
path: |
/tmp/artifacts/*.json
/tmp/artifacts/*.log