From 53f5b1ad39d19981b4e2ffaf811111c7b64d4642 Mon Sep 17 00:00:00 2001 From: Xiaofeng Wang Date: Fri, 9 Feb 2024 00:03:47 +0800 Subject: [PATCH] ci: use one workflow and matrix to replace three workflows --- .github/workflows/cs9-dev-x86-replace.yml | 185 ---------------------- .github/workflows/cs9-x86-replace.yml | 185 ---------------------- .github/workflows/os-replace.yml | 154 ++++++++++++++++++ .github/workflows/rhel9-x86-replace.yml | 185 ---------------------- tmt/plans/os-replace.fmf | 4 +- 5 files changed, 156 insertions(+), 557 deletions(-) delete mode 100644 .github/workflows/cs9-dev-x86-replace.yml delete mode 100644 .github/workflows/cs9-x86-replace.yml create mode 100644 .github/workflows/os-replace.yml delete mode 100644 .github/workflows/rhel9-x86-replace.yml diff --git a/.github/workflows/cs9-dev-x86-replace.yml b/.github/workflows/cs9-dev-x86-replace.yml deleted file mode 100644 index 2595168..0000000 --- a/.github/workflows/cs9-dev-x86-replace.yml +++ /dev/null @@ -1,185 +0,0 @@ ---- -name: centos-bootc-dev:stream9 OS Replace 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-aarch64') || - endsWith(github.event.comment.body, '/test-cs9-dev-aarch64-replace') || - 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')) }} - 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86-replace') || - 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" - update_pull_request_status: true - 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 }}" - variables: "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-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86-replace') || - 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" - update_pull_request_status: true - 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 }}" - variables: "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-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86-replace') || - 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" - update_pull_request_status: true - 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 }}" - variables: "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-replace') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86') || - endsWith(github.event.comment.body, '/test-cs9-dev-x86-replace') || - 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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=centos-stream-9;IMAGE_NAME=centos-bootc-dev" diff --git a/.github/workflows/cs9-x86-replace.yml b/.github/workflows/cs9-x86-replace.yml deleted file mode 100644 index d9e2126..0000000 --- a/.github/workflows/cs9-x86-replace.yml +++ /dev/null @@ -1,185 +0,0 @@ ---- -name: centos-bootc:stream9 OS Replace 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-x86') || - endsWith(github.event.comment.body, '/test-cs9-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-aarch64') || - endsWith(github.event.comment.body, '/test-cs9-aarch64-replace') || - 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')) }} - 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-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-replace') || - endsWith(github.event.comment.body, '/test-cs9-x86') || - endsWith(github.event.comment.body, '/test-cs9-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=centos-stream-9" - - 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-x86') || - endsWith(github.event.comment.body, '/test-cs9-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=centos-stream-9" - - 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-x86') || - endsWith(github.event.comment.body, '/test-cs9-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=centos-stream-9" - - 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-replace') || - endsWith(github.event.comment.body, '/test-cs9-x86') || - endsWith(github.event.comment.body, '/test-cs9-x86-replace') || - endsWith(github.event.comment.body, '/test-cs9-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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=centos-stream-9" diff --git a/.github/workflows/os-replace.yml b/.github/workflows/os-replace.yml new file mode 100644 index 0000000..b163d9e --- /dev/null +++ b/.github/workflows/os-replace.yml @@ -0,0 +1,154 @@ +--- +name: OS Replace 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-replace') || + endsWith(github.event.comment.body, '/test-cs9') || + endsWith(github.event.comment.body, '/test-cs9-replace') || + endsWith(github.event.comment.body, '/test-cs9-dev') || + endsWith(github.event.comment.body, '/test-cs9-dev-replace')) }} + 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 }} + + rhel94-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-replace')) }} + continue-on-error: true + strategy: + matrix: + arch: x86_64 + platform: [openstack, gcp, aws, libvirt] + 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: 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: ${{ matrix.arch }} + tmt_context: "arch=${{ matrix.arch }}" + update_pull_request_status: true + pull_request_status_name: "bootc-rhel94-${{ matrix.arch }}-replace-${{ matrix.platform }}" + tmt_plan_regex: "${{ matrix.platform }}" + 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 }};QUAY_SECRET=${{ secrets.QUAY_SECRET }};RHEL_REGISTRY_URL=${{ secrets.RHEL_REGISTRY_URL }};DOWNLOAD_NODE=${{ secrets.DOWNLOAD_NODE }};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 }};AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};AWS_REGION=${{ secrets.AWS_REGION }}" + variables: "TEST_OS=rhel-9-4;PLATFORM=${{ matrix.platform }}" + + cs9-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-replace')) }} + continue-on-error: true + strategy: + matrix: + arch: x86_64 + platform: [openstack, gcp, aws, libvirt] + 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: ${{ matrix.arch }} + tmt_context: "arch=${{ matrix.arch }}" + update_pull_request_status: true + pull_request_status_name: "bootc-cs9-${{ matrix.arch }}-replace-${{ matrix.platform }}" + tmt_plan_regex: "${{ matrix.platform }}" + 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 }};QUAY_SECRET=${{ secrets.QUAY_SECRET }};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 }};AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};AWS_REGION=${{ secrets.AWS_REGION }}" + variables: "TEST_OS=centos-stream-9;PLATFORM=${{ matrix.platform }}" + + cs9-dev-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-replace')) }} + continue-on-error: true + strategy: + matrix: + arch: x86_64 + platform: [openstack, gcp, aws, libvirt] + 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: ${{ matrix.arch }} + tmt_context: "arch=${{ matrix.arch }}" + update_pull_request_status: true + pull_request_status_name: "bootc-cs9-dev-${{ matrix.arch }}-replace-${{ matrix.platform }}" + tmt_plan_regex: "${{ matrix.platform }}" + 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 }};QUAY_SECRET=${{ secrets.QUAY_SECRET }};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 }};AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }};AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }};AWS_REGION=${{ secrets.AWS_REGION }}" + variables: "TEST_OS=centos-stream-9;PLATFORM=${{ matrix.platform }};IMAGE_NAME=centos-bootc-dev" diff --git a/.github/workflows/rhel9-x86-replace.yml b/.github/workflows/rhel9-x86-replace.yml deleted file mode 100644 index f82a2c4..0000000 --- a/.github/workflows/rhel9-x86-replace.yml +++ /dev/null @@ -1,185 +0,0 @@ ---- -name: rhel9-rhel_bootc:rhel-9.4 OS Replace 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-replace') || - endsWith(github.event.comment.body, '/test-rhel94-x86') || - endsWith(github.event.comment.body, '/test-rhel94-x86-replace') || - endsWith(github.event.comment.body, '/test-rhel94-aarch64') || - endsWith(github.event.comment.body, '/test-rhel94-aarch64-replace') || - 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')) }} - 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 }} - - 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-replace') || - endsWith(github.event.comment.body, '/test-rhel94-x86') || - endsWith(github.event.comment.body, '/test-rhel94-x86-replace') || - endsWith(github.event.comment.body, '/test-rhel94-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: 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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=rhel-9-4" - - 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-replace') || - endsWith(github.event.comment.body, '/test-rhel94-x86') || - endsWith(github.event.comment.body, '/test-rhel94-x86-replace') || - endsWith(github.event.comment.body, '/test-rhel94-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: 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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=rhel-9-4" - - 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-replace') || - endsWith(github.event.comment.body, '/test-rhel94-x86') || - endsWith(github.event.comment.body, '/test-rhel94-x86-replace') || - endsWith(github.event.comment.body, '/test-rhel94-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: 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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=rhel-9-4" - - 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-replace') || - endsWith(github.event.comment.body, '/test-rhel94-x86') || - endsWith(github.event.comment.body, '/test-rhel94-x86-replace') || - endsWith(github.event.comment.body, '/test-rhel94-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: 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" - update_pull_request_status: true - 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 }}" - variables: "TEST_OS=rhel-9-4" diff --git a/tmt/plans/os-replace.fmf b/tmt/plans/os-replace.fmf index e13da3e..7c02fe5 100644 --- a/tmt/plans/os-replace.fmf +++ b/tmt/plans/os-replace.fmf @@ -54,9 +54,9 @@ execute: - when: arch != x86_64 and arch != aarch64 enabled: false -/local: +/libvirt: summary: Run os-replace test locally (nested) - tag: [local, stable] + tag: [libvirt, stable] environment+: PLATFORM: libvirt prepare+: