From 29d2f12b60e7488e6ba4590f99bf672761f52728 Mon Sep 17 00:00:00 2001 From: jamshale Date: Thu, 29 Aug 2024 17:58:55 +0000 Subject: [PATCH] Adjust nightly and release workflows Signed-off-by: jamshale --- .github/actions/is-release/action.yml | 34 +++++++++++++++++++ .github/workflows/bdd-integration-tests.yml | 30 ++-------------- .github/workflows/bdd-interop-tests.yml | 15 +++++++- .../workflows/scenario-integration-tests.yml | 3 ++ 4 files changed, 54 insertions(+), 28 deletions(-) create mode 100644 .github/actions/is-release/action.yml diff --git a/.github/actions/is-release/action.yml b/.github/actions/is-release/action.yml new file mode 100644 index 0000000000..baa7178b28 --- /dev/null +++ b/.github/actions/is-release/action.yml @@ -0,0 +1,34 @@ +name: Check if PR is a release +description: "Checks if the PR is a release" + +runs: + using: "composite" + steps: + - name: Check if PR is a release + shell: bash + id: check_if_release + continue-on-error: true + run: | + # Get the diff between the current commit and the last merge commit on the upstream/main branch + git remote add upstream https://github.com/hyperledger/aries-cloudagent-python.git + git fetch upstream + + last_merge=$(git rev-list --no-merges -n 1 upstream/main) + + echo event = ${{ github.event_name }} + + echo last upstream commit = "$last_merge" + echo current pr commit = "${{ github.sha }}" + + echo Will exit with code 1 if the pull request is not a release + + changes=$(git diff "${{ github.sha }}" "$last_merge" pyproject.toml) + + # Extract the version of aries-cloudagent from the diff of pyproject.toml + version=$(echo "$changes" | grep -A1 'name = "aries_cloudagent"' | head -n 2 | tail -n 1 | awk '{print $3}' | tr -d '"') + + echo "$version" + if [ "$version" ]; then + echo "This is a release because the aries-cloudagent version in pyproject.toml has changes" + echo is_release=true >> $GITHUB_OUTPUT + fi diff --git a/.github/workflows/bdd-integration-tests.yml b/.github/workflows/bdd-integration-tests.yml index ea4be448b9..4c6790d84d 100644 --- a/.github/workflows/bdd-integration-tests.yml +++ b/.github/workflows/bdd-integration-tests.yml @@ -29,37 +29,13 @@ jobs: with: fetch-depth: 0 - name: Check if PR is a release + uses: ./.github/actions/is-release id: check_if_release - continue-on-error: true - run: | - # Get the diff between the current commit and the last merge commit on the upstream/main branch - git remote add upstream https://github.com/hyperledger/aries-cloudagent-python.git - git fetch upstream - - last_merge=$(git rev-list --no-merges -n 1 upstream/main) - - echo event = ${{ github.event_name }} - - echo last upstream commit = "$last_merge" - echo current pr commit = "${{ github.sha }}" - - echo Will exit with code 1 if the pull request is not a release - - changes=$(git diff "${{ github.sha }}" "$last_merge" pyproject.toml) - - # Extract the version of aries-cloudagent from the diff of pyproject.toml - version=$(echo "$changes" | grep -A1 'name = "aries_cloudagent"' | head -n 2 | tail -n 1 | awk '{print $3}' | tr -d '"') - - echo "$version" - if [ "$version" ]; then - echo "This is a release because the aries-cloudagent version in pyproject.toml has changes" - echo is_release=true >> $GITHUB_OUTPUT - fi - name: run-pr-integration-tests uses: ./.github/actions/run-integration-tests - if: (steps.check_if_release.outputs.is_release != 'true' && github.event_name == 'pull_request') + if: (steps.check_if_release.outputs.is_release != 'true') - name: run-release-or-cron-integration-tests - if: (steps.check_if_release.outputs.is_release == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') + if: (steps.check_if_release.outputs.is_release == 'true') uses: ./.github/actions/run-integration-tests with: TEST_SCOPE: "-t @Release -t ~@BBS" diff --git a/.github/workflows/bdd-interop-tests.yml b/.github/workflows/bdd-interop-tests.yml index da1289a3db..2063189193 100644 --- a/.github/workflows/bdd-interop-tests.yml +++ b/.github/workflows/bdd-interop-tests.yml @@ -1,6 +1,9 @@ name: BDD Interop Integration Tests on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: pull_request: branches: - main @@ -25,6 +28,9 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Check if PR is a release + uses: ./.github/actions/is-release + id: check_if_release - name: Request GitHub API for PR data uses: octokit/request-action@v2.x env: @@ -32,7 +38,7 @@ jobs: id: get_pr_data with: route: GET /repos/${{ github.event.repository.full_name }}/pulls/${{ github.event.number }} - - name: Run BDD Interop Tests + - name: Prepare Interop Tests run: | # Get AATH git clone https://github.com/hyperledger/aries-agent-test-harness.git @@ -42,5 +48,12 @@ jobs: cat aries-agent-test-harness/aries-backchannels/acapy/requirements-main.txt cd aries-agent-test-harness ./manage build -a acapy-main + - name: Run PR Interop Tests + if: (steps.check_if_release.outputs.is_release != 'true' && github.event_name == 'pull_request') + run: | NO_TTY=1 LEDGER_URL_CONFIG=http://test.bcovrin.vonx.io TAILS_SERVER_URL_CONFIG=https://tails.vonx.io ./manage run -d acapy-main -t @critical -t ~@wip -t ~@T004-RFC0211 -t ~@DidMethod_orb -t ~@Transport_NoHttpOutbound + - name: Run Release or Nightly Interop Tests + if: (steps.check_if_release.outputs.is_release != 'true' && github.event_name == 'pull_request') + run: | + NO_TTY=1 LEDGER_URL_CONFIG=http://test.bcovrin.vonx.io TAILS_SERVER_URL_CONFIG=https://tails.vonx.io ./manage run -d acapy-main -t @AcceptanceTest -t ~@wip -t ~@T004-RFC0211 -t ~@DidMethod_orb -t ~@Transport_NoHttpOutbound diff --git a/.github/workflows/scenario-integration-tests.yml b/.github/workflows/scenario-integration-tests.yml index 9ab0c96e97..ed42198ec9 100644 --- a/.github/workflows/scenario-integration-tests.yml +++ b/.github/workflows/scenario-integration-tests.yml @@ -1,6 +1,9 @@ name: Scenario Integration Tests on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: pull_request: branches: - main