Skip to content

Commit

Permalink
ci: add workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
henrywang committed Feb 5, 2024
0 parents commit f1b2e6e
Show file tree
Hide file tree
Showing 5 changed files with 540 additions and 0 deletions.
178 changes: 178 additions & 0 deletions .github/workflows/cs9-x86.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
---
name: centos-bootc:stream9 Test

on:
issue_comment:
types:
- created

jobs:
pr-info:
if: ${{ github.event.issue.pull_request &&
(endsWith(github.event.comment.body, '/test-cs9') ||
endsWith(github.event.comment.body, '/test-cs9-x86') ||
endsWith(github.event.comment.body, '/test-cs9-x86-openstack-replace') ||
endsWith(github.event.comment.body, '/test-cs9-x86-gcp-replace') ||
endsWith(github.event.comment.body, '/test-cs9-x86-aws-replace') ||
endsWith(github.event.comment.body, '/test-cs9-x86-libvirt-replace') ||
endsWith(github.event.comment.body, '/test-cs9-x86-anaconda')) }}
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 }}

# restrict running of tests to users with admin or write permission for the repository
# see https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#get-repository-permissions-for-a-user
- 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 }}

cs9-x86-openstack-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: CentOS-Stream-9
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-cs9-x86-openstack-replace"
tmt_plan_regex: "openstack"
tf_scope: private
secrets: "OS_USERNAME=${{ secrets.OS_USERNAME }};OS_PASSWORD=${{ secrets.OS_PASSWORD }};OS_AUTH_URL=${{ secrets.OS_AUTH_URL }};OS_PROJECT_NAME=${{ secrets.OS_PROJECT_NAME }};OS_USER_DOMAIN_NAME=${{ secrets.OS_USER_DOMAIN_NAME }};OS_PROJECT_DOMAIN_NAME=${{ secrets.OS_PROJECT_DOMAIN_NAME }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};TEST_OS=centos-stream-9"

cs9-x86-gcp-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: CentOS-Stream-9
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-cs9-x86-gcp-replace"
tmt_plan_regex: "gcp"
tf_scope: private
secrets: "GCP_PROJECT=${{ secrets.GCP_PROJECT }};GCP_SERVICE_ACCOUNT_NAME=${{ secrets.GCP_SERVICE_ACCOUNT_NAME }};GCP_SERVICE_ACCOUNT_FILE_B64=${{ secrets.GCP_SERVICE_ACCOUNT_FILE_B64 }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};TEST_OS=centos-stream-9"

cs9-x86-aws-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: CentOS-Stream-9
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-cs9-x86-aws-replace"
tmt_plan_regex: "aws"
tf_scope: private
secrets: "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};AWS_REGION=${{ secrets.AWS_REGION }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};TEST_OS=centos-stream-9"

cs9-x86-libvirt-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: CentOS-Stream-9
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-cs9-x86-libvirt-replace"
tmt_plan_regex: "local"
tf_scope: private
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};TEST_OS=centos-stream-9"
178 changes: 178 additions & 0 deletions .github/workflows/rhel9-x86.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
---
name: rhel9-rhel_bootc:rhel-9.4 Test

on:
issue_comment:
types:
- created

jobs:
pr-info:
if: ${{ github.event.issue.pull_request &&
(endsWith(github.event.comment.body, '/test-rhel94') ||
endsWith(github.event.comment.body, '/test-rhel94-x86') ||
endsWith(github.event.comment.body, '/test-rhel94-x86-openstack-replace') ||
endsWith(github.event.comment.body, '/test-rhel94-x86-gcp-replace') ||
endsWith(github.event.comment.body, '/test-rhel94-x86-aws-replace') ||
endsWith(github.event.comment.body, '/test-rhel94-x86-libvirt-replace') ||
endsWith(github.event.comment.body, '/test-rhel94-x86-anaconda')) }}
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 }}

# restrict running of tests to users with admin or write permission for the repository
# see https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#get-repository-permissions-for-a-user
- 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 }}

rhel94-x86-openstack-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: RHEL-9.4.0-Nightly
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-rhel94-x86-openstack-replace"
tmt_plan_regex: "openstack"
tf_scope: private
secrets: "OS_USERNAME=${{ secrets.OS_USERNAME }};OS_PASSWORD=${{ secrets.OS_PASSWORD }};OS_AUTH_URL=${{ secrets.OS_AUTH_URL }};OS_PROJECT_NAME=${{ secrets.OS_PROJECT_NAME }};OS_USER_DOMAIN_NAME=${{ secrets.OS_USER_DOMAIN_NAME }};OS_PROJECT_DOMAIN_NAME=${{ secrets.OS_PROJECT_DOMAIN_NAME }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};RHEL_REGISTRY_URL=${{ secrets.RHEL_REGISTRY_URL }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};TEST_OS=rhel-9-4"

rhel94-x86-gcp-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: RHEL-9.4.0-Nightly
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-rhel94-x86-gcp-replace"
tmt_plan_regex: "gcp"
tf_scope: private
secrets: "GCP_PROJECT=${{ secrets.GCP_PROJECT }};GCP_SERVICE_ACCOUNT_NAME=${{ secrets.GCP_SERVICE_ACCOUNT_NAME }};GCP_SERVICE_ACCOUNT_FILE_B64=${{ secrets.GCP_SERVICE_ACCOUNT_FILE_B64 }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};RHEL_REGISTRY_URL=${{ secrets.RHEL_REGISTRY_URL }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};TEST_OS=rhel-9-4"

rhel94-x86-aws-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: RHEL-9.4.0-Nightly
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-rhel94-x86-aws-replace"
tmt_plan_regex: "aws"
tf_scope: private
secrets: "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};AWS_REGION=${{ secrets.AWS_REGION }};QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};RHEL_REGISTRY_URL=${{ secrets.RHEL_REGISTRY_URL }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};TEST_OS=rhel-9-4"

rhel94-x86-libvirt-replace:
needs: pr-info
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Clone repository
uses: actions/checkout@v4
with:
repository: virt-s1/bootc-workflow-test
fetch-depth: 0
path: bootc-workflow-test

- name: Sync test code here
command: rsync -a --exclude='.git' --exclude='.github' --exclude='.tekton' --exclude='.gitignore' --exclude='.yamllint.yml' --exclude='LICENSE' --exclude='README.md' ./bootc-workflow-test .

- name: Run the tests
uses: sclorg/testing-farm-as-github-action@v1
with:
compose: RHEL-9.4.0-Nightly
api_key: ${{ secrets.TF_API_KEY }}
git_url: ${{ needs.pr-info.outputs.repo_url }}
git_ref: ${{ needs.pr-info.outputs.ref }}
arch: "x86_64"
tmt_context: "arch=x86_64"
pull_request_status_name: "bootc-rhel94-x86-libvirt-replace"
tmt_plan_regex: "local"
tf_scope: private
secrets: "QUAY_USERNAME=${{ secrets.QUAY_USERNAME }};QUAY_PASSWORD=${{ secrets.QUAY_PASSWORD }};RHEL_REGISTRY_URL=${{ secrets.RHEL_REGISTRY_URL }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};TEST_OS=rhel-9-4"
Loading

0 comments on commit f1b2e6e

Please sign in to comment.