From 477cc15289ea5c4cfc7ae7f01ddc2796e35f058a Mon Sep 17 00:00:00 2001 From: Xiaofeng Wang Date: Wed, 7 Feb 2024 00:06:32 +0800 Subject: [PATCH] ci: add centos-bootc-dev:stream9 image test --- .github/workflows/cs9-dev-x86.yml | 166 ++++++++++++++++++++++++++++++ .github/workflows/cs9-x86.yml | 16 +++ .github/workflows/rhel9-x86.yml | 16 +++ os-replace.sh | 2 +- 4 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/cs9-dev-x86.yml diff --git a/.github/workflows/cs9-dev-x86.yml b/.github/workflows/cs9-dev-x86.yml new file mode 100644 index 0000000..04dc6b8 --- /dev/null +++ b/.github/workflows/cs9-dev-x86.yml @@ -0,0 +1,166 @@ +--- +name: centos-bootc-dev:stream9 Test + +on: + issue_comment: + types: + - created + +jobs: + pr-info: + if: ${{ github.event.issue.pull_request && + (endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-openstack-replace') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-gcp-replace') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-aws-replace') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-libvirt-replace') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-anaconda')) }} + runs-on: ubuntu-latest + steps: + - name: Query author repository permissions + uses: octokit/request-action@v2.x + 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/request-action@v2.x + 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-dev-x86-openstack-replace: + needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request && + (endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-openstack-replace')) }} + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v4 + with: + ref: ${{ needs.pr-info.outputs.sha }} + fetch-depth: 0 + + - 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-dev-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;IMAGE_NAME=centos-bootc-dev" + + cs9-dev-x86-gcp-replace: + needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request && + (endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-gcp-replace')) }} + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v4 + with: + ref: ${{ needs.pr-info.outputs.sha }} + fetch-depth: 0 + + - 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-dev-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;IMAGE_NAME=centos-bootc-dev" + + cs9-dev-x86-aws-replace: + needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request && + (endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-aws-replace')) }} + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v4 + with: + ref: ${{ needs.pr-info.outputs.sha }} + fetch-depth: 0 + + - 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-dev-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;IMAGE_NAME=centos-bootc-dev" + + cs9-dev-x86-libvirt-replace: + needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && github.event.issue.pull_request && + (endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86') || + endsWith(github.event.comment.body, '/test-cs9-dev-x86-libvirt-replace')) }} + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v4 + with: + ref: ${{ needs.pr-info.outputs.sha }} + fetch-depth: 0 + + - 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-dev-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;IMAGE_NAME=centos-bootc-dev" diff --git a/.github/workflows/cs9-x86.yml b/.github/workflows/cs9-x86.yml index f2ce6b1..a789c88 100644 --- a/.github/workflows/cs9-x86.yml +++ b/.github/workflows/cs9-x86.yml @@ -51,6 +51,10 @@ jobs: cs9-x86-openstack-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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')) }} runs-on: ubuntu-latest steps: @@ -76,6 +80,10 @@ jobs: cs9-x86-gcp-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-gcp-replace')) }} runs-on: ubuntu-latest steps: @@ -101,6 +109,10 @@ jobs: cs9-x86-aws-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-aws-replace')) }} runs-on: ubuntu-latest steps: @@ -126,6 +138,10 @@ jobs: cs9-x86-libvirt-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-libvirt-replace')) }} runs-on: ubuntu-latest steps: diff --git a/.github/workflows/rhel9-x86.yml b/.github/workflows/rhel9-x86.yml index c6b63be..d49f562 100644 --- a/.github/workflows/rhel9-x86.yml +++ b/.github/workflows/rhel9-x86.yml @@ -51,6 +51,10 @@ jobs: rhel94-x86-openstack-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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')) }} runs-on: ubuntu-latest steps: @@ -76,6 +80,10 @@ jobs: rhel94-x86-gcp-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-gcp-replace')) }} runs-on: ubuntu-latest steps: @@ -101,6 +109,10 @@ jobs: rhel94-x86-aws-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-aws-replace')) }} runs-on: ubuntu-latest steps: @@ -126,6 +138,10 @@ jobs: rhel94-x86-libvirt-replace: needs: pr-info + if: ${{ needs.pr-info.outputs.allowed_user == 'true' && 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-libvirt-replace')) }} runs-on: ubuntu-latest steps: diff --git a/os-replace.sh b/os-replace.sh index 6a5644b..9de7e96 100755 --- a/os-replace.sh +++ b/os-replace.sh @@ -40,7 +40,7 @@ case "$TEST_OS" in fi ;; "centos-stream-9") - IMAGE_NAME="centos-bootc" + IMAGE_NAME=${IMAGE_NAME:-"centos-bootc"} TIER1_IMAGE_URL="quay.io/centos-bootc/${IMAGE_NAME}:stream9" TIER1_IMAGE_URL="${IMAGE_URL-$TIER1_IMAGE_URL}" SSH_USER="cloud-user"