From ee131f3d6d35a2a008593bf1c48d6e66012031d0 Mon Sep 17 00:00:00 2001 From: Dharmesh Patel Date: Wed, 31 Jul 2024 16:07:30 +0530 Subject: [PATCH 1/3] Upgrade GH actions from `v3` to `v4` --- .github/workflows/e2e.yml | 10 +++++----- .github/workflows/eslint.yml | 4 ++-- .github/workflows/generate-zip.yml | 6 +++--- .github/workflows/php-compat.yml | 4 ++-- .github/workflows/phpcs.yml | 4 ++-- .github/workflows/qit.yml | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d3a85e96..eb6a477c 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -20,14 +20,14 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 16 - name: Composer cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | vendor @@ -35,7 +35,7 @@ jobs: key: composer-${{ hashFiles('composer.lock') }} - name: Node cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | node_modules @@ -112,7 +112,7 @@ jobs: if: ${{ github.event_name == 'push' }} run: npm run test:e2e - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index b0f0c981..a4ae0145 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -6,7 +6,7 @@ jobs: changed: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -24,7 +24,7 @@ jobs: run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} diff --git a/.github/workflows/generate-zip.yml b/.github/workflows/generate-zip.yml index 8dc64705..65acaac0 100644 --- a/.github/workflows/generate-zip.yml +++ b/.github/workflows/generate-zip.yml @@ -9,10 +9,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup node version and npm cache - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 cache: 'npm' @@ -24,7 +24,7 @@ jobs: run: npm run prebuild && npm run build:webpack && npm run archive && rm -rf ./woocommerce-accommodation-bookings && unzip woocommerce-accommodation-bookings.zip -d ./woocommerce-accommodation-bookings - name: Use the Upload Artifact GitHub Action - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: woocommerce-accommodation-bookings path: woocommerce-accommodation-bookings/ diff --git a/.github/workflows/php-compat.yml b/.github/workflows/php-compat.yml index 30b5b86f..7b00066d 100644 --- a/.github/workflows/php-compat.yml +++ b/.github/workflows/php-compat.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -25,7 +25,7 @@ jobs: run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 2636d0fe..1d39830d 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -25,7 +25,7 @@ jobs: run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} diff --git a/.github/workflows/qit.yml b/.github/workflows/qit.yml index c75fbc4c..1035ebbc 100644 --- a/.github/workflows/qit.yml +++ b/.github/workflows/qit.yml @@ -41,10 +41,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download build - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ github.event.repository.name }} From 41f878364d8ae8fd55ad9be5d6525654aa7f03ed Mon Sep 17 00:00:00 2001 From: Dharmesh Patel Date: Wed, 31 Jul 2024 16:09:45 +0530 Subject: [PATCH 2/3] Fix the QIT Woo E2E tests and add new PHPCompat and Malware tests. --- .github/workflows/qit.yml | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/.github/workflows/qit.yml b/.github/workflows/qit.yml index 1035ebbc..b830c87c 100644 --- a/.github/workflows/qit.yml +++ b/.github/workflows/qit.yml @@ -14,7 +14,9 @@ on: - api - e2e - phpstan + - phpcompat - security + - malware pull_request: types: [opened, synchronize, reopened, labeled] branches: @@ -26,11 +28,11 @@ permissions: jobs: build: - if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') }}" - uses: woocommerce/woocommerce-accommodation-bookings/.github/workflows/generate-zip.yml@trunk + if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpcompat test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') || contains(github.event.pull_request.labels.*.name, 'needs: qit malware test') }}" + uses: woocommerce/woocommerce-accommodation-bookings/.github/workflows/generate-zip.yml@fix/444 test: - if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') }}" + if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpcompat test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') || contains(github.event.pull_request.labels.*.name, 'needs: qit malware test') }}" needs: build name: run runs-on: ubuntu-latest @@ -79,7 +81,7 @@ jobs: - name: Run API test if: "${{ ( ( inputs.tests == 'default' || inputs.tests == 'api' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') ) && ( success() || failure() ) }}" id: run-api-test - run: ./vendor/bin/qit run:api ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > api-result.txt + run: ./vendor/bin/qit run:woo-api ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > api-result.txt - uses: marocchino/sticky-pull-request-comment@v2 if: ${{ failure() && steps.run-api-test.conclusion == 'failure' }} @@ -91,7 +93,7 @@ jobs: - name: Run E2E test if: "${{ ( ( inputs.tests == 'default' || inputs.tests == 'e2e' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') ) && ( success() || failure() ) }}" id: run-e2e-test - run: ./vendor/bin/qit run:e2e ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > e2e-result.txt + run: ./vendor/bin/qit run:woo-e2e ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > e2e-result.txt - uses: marocchino/sticky-pull-request-comment@v2 if: ${{ failure() && steps.run-e2e-test.conclusion == 'failure' }} @@ -112,6 +114,18 @@ jobs: recreate: true path: phpstan-result.txt + - name: Run PHPCompat test + if: "${{ inputs.tests == 'phpcompat' || contains(github.event.pull_request.labels.*.name, 'needs: qit phpcompat test') && ( success() || failure() ) }}" + id: run-phpcompat-test + run: ./vendor/bin/qit run:phpcompatibility ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > phpcompat-result.txt + + - uses: marocchino/sticky-pull-request-comment@v2 + if: ${{ failure() && steps.run-phpcompat-test.conclusion == 'failure' }} + with: + header: QIT PHPCompat result + recreate: true + path: phpcompat-result.txt + - name: Run security test if: "${{ inputs.tests == 'security' || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') && ( success() || failure() ) }}" id: run-security-test @@ -123,3 +137,15 @@ jobs: header: QIT security result recreate: true path: security-result.txt + + - name: Run malware test + if: "${{ inputs.tests == 'malware' || contains(github.event.pull_request.labels.*.name, 'needs: qit malware test') && ( success() || failure() ) }}" + id: run-malware-test + run: ./vendor/bin/qit run:malware ${{ github.event.repository.name }} --zip=${{ github.event.repository.name }}.zip --wait > malware-result.txt + + - uses: marocchino/sticky-pull-request-comment@v2 + if: ${{ failure() && steps.run-malware-test.conclusion == 'failure' }} + with: + header: QIT malware result + recreate: true + path: malware-result.txt From 7aac9702193a335cdf0d767a97b58dd2bba34eed Mon Sep 17 00:00:00 2001 From: Dharmesh Patel Date: Wed, 31 Jul 2024 17:46:46 +0530 Subject: [PATCH 3/3] Switch generate-zip action use from trunk --- .github/workflows/qit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qit.yml b/.github/workflows/qit.yml index b830c87c..5ba9c8df 100644 --- a/.github/workflows/qit.yml +++ b/.github/workflows/qit.yml @@ -29,7 +29,7 @@ permissions: jobs: build: if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpcompat test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') || contains(github.event.pull_request.labels.*.name, 'needs: qit malware test') }}" - uses: woocommerce/woocommerce-accommodation-bookings/.github/workflows/generate-zip.yml@fix/444 + uses: woocommerce/woocommerce-accommodation-bookings/.github/workflows/generate-zip.yml@trunk test: if: "${{ ( inputs.test != '' && inputs.test != 'none' ) || contains(github.event.pull_request.labels.*.name, 'needs: qit default tests') || contains(github.event.pull_request.labels.*.name, 'needs: qit activation test') || contains(github.event.pull_request.labels.*.name, 'needs: qit api test') || contains(github.event.pull_request.labels.*.name, 'needs: qit e2e test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpstan test') || contains(github.event.pull_request.labels.*.name, 'needs: qit phpcompat test') || contains(github.event.pull_request.labels.*.name, 'needs: qit security test') || contains(github.event.pull_request.labels.*.name, 'needs: qit malware test') }}"