Skip to content

Commit

Permalink
test: trigger all test cases with one comment
Browse files Browse the repository at this point in the history
  • Loading branch information
mcattamoredhat committed May 22, 2024
1 parent 4d0f863 commit b6a7c84
Show file tree
Hide file tree
Showing 3 changed files with 221 additions and 57 deletions.
120 changes: 120 additions & 0 deletions .github/workflows/fedora-39.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
name: Run Edge Test on Fedora 39

on:
issue_comment:
types:
- created

jobs:
pr-info:
if: ${{ github.event.issue.pull_request &&
(endsWith(github.event.comment.body, '/test-f39') }}
runs-on: ubuntu-latest
steps:
- name: Query author repository permissions
uses: octokit/[email protected]
id: user_permission
with:
route: GET /repos/${{ github.repository }}/collaborators/${{ github.event.sender.login }}/permission
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Check if user does have correct permissions
if: contains('admin write', fromJson(steps.user_permission.outputs.data).permission)
id: check_user_perm
run: |
echo "User '${{ github.event.sender.login }}' has permission '${{ fromJson(steps.user_permission.outputs.data).permission }}' allowed values: 'admin', 'write'"
echo "allowed_user=true" >> $GITHUB_OUTPUT
- name: Get information for pull request
uses: octokit/[email protected]
id: pr-api
with:
route: GET /repos/${{ github.repository }}/pulls/${{ github.event.issue.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

outputs:
allowed_user: ${{ steps.check_user_perm.outputs.allowed_user }}
sha: ${{ fromJson(steps.pr-api.outputs.data).head.sha }}
ref: ${{ fromJson(steps.pr-api.outputs.data).head.ref }}
repo_url: ${{ fromJson(steps.pr-api.outputs.data).head.repo.html_url }}

pre-iot-commit-f39:
needs: pr-info
if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request &&
(endsWith(github.event.comment.body, '/test-f39') ||
endsWith(github.event.comment.body, '/test-f39-virt')) }}
runs-on: ubuntu-latest
env:
STATUS_NAME: iot-commit-f39

steps:
- name: Create in-progress status
uses: octokit/[email protected]
with:
route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}'
context: ${{ env.STATUS_NAME }}
state: pending
description: 'Runner has been deploying...'
target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

iot-f39-x86:
needs: pr-info
if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request }}
continue-on-error: true
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
ref: ${{ needs.pr-info.outputs.sha }}
fetch-depth: 0

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v2
with:
compose: Fedora-39-Updated
arch: x86_64
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
update_pull_request_status: true
pull_request_status_name: "iot-f39-x86"
tmt_plan_regex: iot-x86
tf_scope: private
secrets: "DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};OCP4_TOKEN=${{ secrets.OCP4_TOKEN }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }};DOCKERHUB_PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }};AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};GOVC_URL=${{ secrets.GOVC_URL }};GOVC_USERNAME=${{ secrets.GOVC_USERNAME }};GOVC_PASSWORD=${{ secrets.GOVC_PASSWORD }}"
variables: "ARCH=x86_64;AWS_DEFAULT_REGION=us-east-1;GOVC_INSECURE=1"

iot-f39-arm:
needs: pr-info
if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request }}
continue-on-error: true
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
ref: ${{ needs.pr-info.outputs.sha }}
fetch-depth: 0

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v2
with:
compose: Fedora-39-Updated
arch: aarch64
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
update_pull_request_status: true
pull_request_status_name: "iot-f39-arm"
tmt_plan_regex: iot-arm
tf_scope: private
secrets: "DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};OCP4_TOKEN=${{ secrets.OCP4_TOKEN }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }};DOCKERHUB_PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }};AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};GOVC_URL=${{ secrets.GOVC_URL }};GOVC_USERNAME=${{ secrets.GOVC_USERNAME }};GOVC_PASSWORD=${{ secrets.GOVC_PASSWORD }}"
variables: "ARCH=x86_64;AWS_DEFAULT_REGION=us-east-1;GOVC_INSECURE=1"

152 changes: 100 additions & 52 deletions tmt/plans/edge-test.fmf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
summary: Edge commit test
summary: Edge test plan
discover:
how: fmf
test: edge-test
Expand All @@ -8,93 +8,141 @@ provision:
hardware:
virtualization:
is-supported: true
cpu:
processors: ">= 2"
memory: ">= 6 GB"

/iot-commit:
summary: Test iot commit
/edge-x86-commit:
summary: Test edge commit
environment+:
TEST_CASE: iot-commit
TEST_CASE: edge-commit
adjust+:
- when: arch != x86_64
enabled: false

/iot-installer:
summary: Test iot installer
/edge-x86-installer:
summary: Test edge installer image
environment+:
TEST_CASE: iot-installer
TEST_CASE: edge-installer
adjust+:
- when: arch != x86_64
enabled: false

/iot-raw-image:
summary: Test iot raw image
/edge-x86-raw-image:
summary: Test edge raw image
environment+:
TEST_CASE: iot-raw-image
TEST_CASE: edge-raw-image
adjust+:
- when: arch != x86_64
enabled: false

/iot-simplified-installer:
summary: Test iot simplified installer
/edge-x86-simplified-installer:
summary: Test edge simplified installer image
environment+:
TEST_CASE: iot-simplified-installer
TEST_CASE: edge-simplified-installer
adjust+:
- when: arch != x86_64
enabled: false

/iot-minimal:
summary: Test iot minimal raw
/edge-x86-fdo-aio:
summary: Test edge with fdo aio service
environment+:
TEST_CASE: iot-minimal
TEST_CASE: edge-fdo-aio
adjust+:
- when: arch != x86_64
enabled: false

/edge-commit:
summary: Test edge commit
/edge-x86-fdo-db:
summary: Test edge with fdo package with db
environment+:
TEST_CASE: edge-commit
TEST_CASE: edge-fdo-db
adjust+:
- when: arch != x86_64
enabled: false

/edge-installer:
summary: Test edge installer image
/edge-x86-ignition:
summary: Test edge ignition feature
environment+:
TEST_CASE: edge-installer
TEST_CASE: edge-ignition
adjust+:
- when: arch != x86_64
enabled: false

/edge-raw-image:
summary: Test edge raw image
/edge-x86-pulp:
summary: Test edge pulp feature
environment+:
TEST_CASE: edge-raw-image
TEST_CASE: edge-pulp
adjust+:
- when: arch != x86_64
enabled: false

/edge-x86-vsphere:
summary: Test edge vsphere image
environment+:
TEST_CASE: edge-vsphere
adjust+:
- when: arch != x86_64
enabled: false

/edge-ami-image:
/edge-x86-ami-image:
summary: Test edge ami image
environment+:
TEST_CASE: edge-ami-image

/edge-simplified-installer:
summary: Test edge simplified installer image
/edge-x86-minimal:
summary: Test edge minimal raw image
environment+:
TEST_CASE: edge-simplified-installer
TEST_CASE: edge-minimal

/edge-minimal:
/edge-arm-ami-image:
summary: Test edge ami image
environment+:
TEST_CASE: edge-ami-image

/edge-arm-minimal:
summary: Test edge minimal raw image
environment+:
TEST_CASE: edge-minimal

/edge-vsphere:
summary: Test edge vsphere image
/iot-x86-commit:
summary: Test iot commit
environment+:
TEST_CASE: edge-vsphere
TEST_CASE: iot-commit
adjust+:
- when: arch != x86_64
enabled: false

/edge-fdo-aio:
summary: Test edge with fdo aio service
/iot-x86-installer:
summary: Test iot installer image
environment+:
TEST_CASE: edge-fdo-aio
TEST_CASE: iot-installer
adjust+:
- when: arch != x86_64
enabled: false

/edge-fdo-db:
summary: Test edge with fdo package with db
/iot-x86-raw-image:
summary: Test iot raw image
environment+:
TEST_CASE: edge-fdo-db
TEST_CASE: iot-raw-image
adjust+:
- when: arch != x86_64
enabled: false

/edge-ignition:
summary: Test edge ignition feature
/iot-x86-simplified-installer:
summary: Test iot simplified installer image
environment+:
TEST_CASE: edge-ignition
TEST_CASE: iot-simplified-installer
adjust+:
- when: arch != x86_64
enabled: false

/edge-pulp:
summary: Test edge pulp feature
/iot-x86-minimal:
summary: Test iot minimal raw image
environment+:
TEST_CASE: edge-pulp
TEST_CASE: iot-minimal

/edge-8to9:
summary: Test edge upgrade from 8 to 9
/iot-arm-minimal:
summary: Test iot minimal raw image
environment+:
TEST_CASE: edge-8to9
TEST_CASE: iot-minimal

/edge-9to9:
summary: Test edge rebase from 9 to 9
environment+:
TEST_CASE: edge-9to9
6 changes: 1 addition & 5 deletions tmt/tests/test.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
set -exuo pipefail
set -euox pipefail

cd ../../ || exit 1

Expand Down Expand Up @@ -38,7 +38,3 @@ function run_tests() {

run_tests
exit 0




0 comments on commit b6a7c84

Please sign in to comment.