From 81a238b49955e21c0f0954f5186797cf4b5c4c4b Mon Sep 17 00:00:00 2001 From: Dimitri Koshkin <dimitri.koshkin@nutanix.com> Date: Thu, 19 Sep 2024 10:13:21 -0700 Subject: [PATCH] build: add workflow_dispatch to test new OSs --- .github/workflows/test.yaml | 49 ++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 20e71bf..590bda9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,14 +1,28 @@ name: test base images on: pull_request_target: - types: + types: - labeled - opened - synchronize + # Enable manual invocation of this workflow GitHub Actions GUI + workflow_dispatch: + inputs: + os: + description: "The OS to run the integration test with" + type: choice + required: true + options: + - ubuntu + - rocky + - centos + - rhel + - flatcar + jobs: base_image_tests: - runs-on: - - self-hosted-nutanix-medium + runs-on: + - self-hosted-nutanix-medium strategy: fail-fast: false matrix: @@ -38,3 +52,32 @@ jobs: PKR_VAR_vsphere_resource_pool: ${{ secrets.VSPHERE_RESOURCE_POOL }} RHN_SUBSCRIPTION_ORG: ${{ secrets.RHN_SUBSCRIPTION_ORG }} RHN_SUBSCRIPTION_KEY: ${{ secrets.RHN_SUBSCRIPTION_KEY }} + + # Invoke the test manually. + base_image_test: + if: contains(fromJson('["workflow_dispatch"]'), github.event_name) + runs-on: + - self-hosted-nutanix-medium + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + ref: "${{ github.event.pull_request.head.sha }}" + - name: Setup requirements + run: | + sudo apt-get update && sudo apt-get -y install xorriso + curl -L -o - "https://github.com/vmware/govmomi/releases/latest/download/govc_$(uname -s)_$(uname -m).tar.gz" | sudo tar -C /usr/local/bin -xvzf - govc + - name: Run integration tests for ${{ matrix.os }} + run: make ${{ matrix.os }}-test + env: + VSPHERE_USERNAME: ${{ secrets.VSPHERE_SRE_USERNAME }} + VSPHERE_PASSWORD: ${{ secrets.VSPHERE_SRE_PASSWORD }} + VSPHERE_SERVER: ${{ secrets.VSPHERE_SERVER }} + GOVC_URL: ${{ secrets.VSPHERE_SRE_USERNAME }}:${{ secrets.VSPHERE_SRE_PASSWORD }}@${{ secrets.VSPHERE_SERVER }} + PKR_VAR_vsphere_cluster: ${{ secrets.VSPHERE_CLUSTER }} + PKR_VAR_vsphere_datacenter: ${{ secrets.VSPHERE_DATACENTER }} + PKR_VAR_vsphere_datastore: ${{ secrets.VSPHERE_TEST_DATASTORE }} + PKR_VAR_vsphere_network: ${{ secrets.VSPHERE_NETWORK }} + PKR_VAR_vsphere_resource_pool: ${{ secrets.VSPHERE_RESOURCE_POOL }} + RHN_SUBSCRIPTION_ORG: ${{ secrets.RHN_SUBSCRIPTION_ORG }} + RHN_SUBSCRIPTION_KEY: ${{ secrets.RHN_SUBSCRIPTION_KEY }}