From 833f4602ca848e73dd6a4e7757ce336bbd213f1f Mon Sep 17 00:00:00 2001 From: Young Bu Park Date: Fri, 29 Mar 2024 11:38:55 -0700 Subject: [PATCH 1/2] enable retry Signed-off-by: Young Bu Park --- .github/workflows/functional-test.yaml | 38 ++++++++++++++------------ 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/.github/workflows/functional-test.yaml b/.github/workflows/functional-test.yaml index 58d9de7444..6b4b800fc3 100644 --- a/.github/workflows/functional-test.yaml +++ b/.github/workflows/functional-test.yaml @@ -538,26 +538,30 @@ jobs: - name: Publish Terraform test recipes run: | make publish-test-terraform-recipes - - name: Run functional tests - run: | - # Ensure rad cli is in path before running tests. - export PATH=$GITHUB_WORKSPACE/bin:$PATH - cd $GITHUB_WORKSPACE + - uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + shell: bash + command: | + # Ensure rad cli is in path before running tests. + export PATH=$GITHUB_WORKSPACE/bin:$PATH + cd $GITHUB_WORKSPACE - which rad || { echo "cannot find rad"; exit 1; } + which rad || { echo "cannot find rad"; exit 1; } - # Populate the following test environment variables from JSON secret. - # AZURE_MONGODB_RESOURCE_ID - # AZURE_COSMOS_MONGODB_ACCOUNT_ID - # AZURE_TABLESTORAGE_RESOURCE_ID - # AZURE_SERVICEBUS_RESOURCE_ID - # AZURE_REDIS_RESOURCE_ID - # AZURE_MSSQL_RESOURCE_ID - # AZURE_MSSQL_USERNAME - # AZURE_MSSQL_PASSWORD - eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" + # Populate the following test environment variables from JSON secret. + # AZURE_MONGODB_RESOURCE_ID + # AZURE_COSMOS_MONGODB_ACCOUNT_ID + # AZURE_TABLESTORAGE_RESOURCE_ID + # AZURE_SERVICEBUS_RESOURCE_ID + # AZURE_REDIS_RESOURCE_ID + # AZURE_MSSQL_RESOURCE_ID + # AZURE_MSSQL_USERNAME + # AZURE_MSSQL_PASSWORD + eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" - make test-functional-${{ matrix.name }} + make test-functional-${{ matrix.name }} env: DOCKER_REGISTRY: ${{ env.CONTAINER_REGISTRY }} TEST_TIMEOUT: ${{ env.FUNCTIONALTEST_TIMEOUT }} From b47389ef175d41f43ab4d810308d73a94c8250d9 Mon Sep 17 00:00:00 2001 From: Young Bu Park Date: Fri, 29 Mar 2024 11:42:48 -0700 Subject: [PATCH 2/2] test Signed-off-by: Young Bu Park --- .github/workflows/retry-functional-test.yaml | 48 ++++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/.github/workflows/retry-functional-test.yaml b/.github/workflows/retry-functional-test.yaml index ef0f4d5f1d..0ed1e8b879 100644 --- a/.github/workflows/retry-functional-test.yaml +++ b/.github/workflows/retry-functional-test.yaml @@ -22,6 +22,9 @@ permissions: packages: write # Required for uploading the package on: + pull_request: + branches: + - main schedule: # Run every 2 hours - cron: "0 */2 * * *" @@ -95,10 +98,12 @@ jobs: with: app_id: ${{ env.FUNCTIONAL_TEST_APP_ID }} private_key: ${{ secrets.FUNCTIONAL_TEST_APP_PRIVATE_KEY }} - - name: Set up checkout target + - name: Set up checkout target (pull_request) + if: github.event_name == 'pull_request' run: | - echo "CHECKOUT_REPO=youngbupark/radius" >> $GITHUB_ENV - echo "CHECKOUT_REF=refs/heads/youngp/enable-retry-test" >> $GITHUB_ENV + echo "CHECKOUT_REPO=${{ github.repository }}" >> $GITHUB_ENV + echo "CHECKOUT_REF=${{ github.ref }}" >> $GITHUB_ENV + echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> $GITHUB_ENV - name: Check out code uses: actions/checkout@v3 with: @@ -476,25 +481,30 @@ jobs: run: | make publish-test-terraform-recipes - name: Run functional tests - run: | - # Ensure rad cli is in path before running tests. - export PATH=$GITHUB_WORKSPACE/bin:$PATH - cd $GITHUB_WORKSPACE + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + shell: bash + command: | + # Ensure rad cli is in path before running tests. + export PATH=$GITHUB_WORKSPACE/bin:$PATH + cd $GITHUB_WORKSPACE - which rad || { echo "cannot find rad"; exit 1; } + which rad || { echo "cannot find rad"; exit 1; } - # Populate the following test environment variables from JSON secret. - # AZURE_MONGODB_RESOURCE_ID - # AZURE_COSMOS_MONGODB_ACCOUNT_ID - # AZURE_TABLESTORAGE_RESOURCE_ID - # AZURE_SERVICEBUS_RESOURCE_ID - # AZURE_REDIS_RESOURCE_ID - # AZURE_MSSQL_RESOURCE_ID - # AZURE_MSSQL_USERNAME - # AZURE_MSSQL_PASSWORD - eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" + # Populate the following test environment variables from JSON secret. + # AZURE_MONGODB_RESOURCE_ID + # AZURE_COSMOS_MONGODB_ACCOUNT_ID + # AZURE_TABLESTORAGE_RESOURCE_ID + # AZURE_SERVICEBUS_RESOURCE_ID + # AZURE_REDIS_RESOURCE_ID + # AZURE_MSSQL_RESOURCE_ID + # AZURE_MSSQL_USERNAME + # AZURE_MSSQL_PASSWORD + eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" - make test-functional-${{ matrix.name }} + make test-functional-${{ matrix.name }} env: DOCKER_REGISTRY: ${{ env.CONTAINER_REGISTRY }} TEST_TIMEOUT: ${{ env.FUNCTIONALTEST_TIMEOUT }}