E2E test workflow with test suite branch develop #7850
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E2E test workflow | |
| run-name: E2E test workflow with test suite branch ${{inputs.testBranch || 'develop'}} | |
| on: | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| testBranch: | |
| description: "Integration Test Repository branch" | |
| required: true | |
| default: "develop" | |
| testGroup: | |
| description: "Test group" | |
| required: true | |
| default: "standard" | |
| type: choice | |
| options: | |
| - all | |
| - standard | |
| - express-checkout | |
| expressBranch: | |
| description: "Express Checkout repository branch" | |
| required: true | |
| default: "main" | |
| jobs: | |
| build-e2e: | |
| # Only run for same-repo PRs and workflow_dispatch | |
| if: (github.event_name == 'workflow_dispatch') || | |
| (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) | |
| strategy: | |
| matrix: | |
| php-version: ["8.4"] | |
| magento-version: ["2.4.8-p3"] | |
| runs-on: | |
| group: larger-runners | |
| labels: ubuntu-latest-8-cores | |
| timeout-minutes: 30 | |
| permissions: | |
| contents: read | |
| attestations: write | |
| env: | |
| PHP_VERSION: ${{ matrix.php-version }} | |
| MAGENTO_VERSION: ${{ matrix.magento-version }} | |
| ADYEN_API_KEY: ${{secrets.ADYEN_API_KEY}} | |
| ADYEN_CLIENT_KEY: ${{secrets.ADYEN_CLIENT_KEY}} | |
| ADYEN_MERCHANT: ${{secrets.ADYEN_MERCHANT}} | |
| ADYEN_MOTO_API_KEY: ${{secrets.ADYEN_MOTO_API_KEY}} | |
| ADYEN_MOTO_CLIENT_KEY: ${{secrets.ADYEN_MOTO_CLIENT_KEY}} | |
| ADYEN_MOTO_MERCHANT: ${{secrets.ADYEN_MOTO_MERCHANT}} | |
| ADMIN_USERNAME: ${{secrets.MAGENTO_ADMIN_USERNAME}} | |
| ADMIN_PASSWORD: ${{secrets.MAGENTO_ADMIN_PASSWORD}} | |
| DONATION_ACCOUNT: ${{secrets.DONATION_ACCOUNT}} | |
| DEPLOY_SAMPLEDATA: 1 | |
| USE_SSL: 1 | |
| steps: | |
| # Define variables for the test case | |
| - run: echo "IS_RELEASE=${{ github.event_name == 'pull_request' && contains(github.event.pull_request.title, 'Release v9.') && 'TRUE' || 'FALSE' }}" >> $GITHUB_ENV | |
| - run: echo "TEST_GROUP=${{ env.IS_RELEASE == 'TRUE' && 'all' || (inputs.testGroup || 'standard') }}" >> $GITHUB_ENV | |
| - run: echo "TEST_BRANCH=${{ (env.IS_RELEASE == 'TRUE' || !inputs.testBranch) && 'develop' || inputs.testBranch }}" >> $GITHUB_ENV | |
| - run: echo "EXPRESS_BRANCH=${{ contains(fromJSON('["all", "express-checkout"]'), env.TEST_GROUP) && (inputs.expressBranch || 'main') || '' }}" >> $GITHUB_ENV | |
| - name: Information | |
| run: echo "E2E testing against test suite branch ${{env.TEST_BRANCH}} using group ${{env.TEST_GROUP}} ${{ env.EXPRESS_BRANCH && 'with express module branch' || '' }} ${{ env.EXPRESS_BRANCH || '' }}" | |
| - uses: actions/checkout@1e31de5234b9f8995739874a8ce0492dc87873e2 | |
| - name: Install Magento | |
| run: docker compose -f .github/docker-compose.yml run --rm web make magento | |
| - name: Start web server in background | |
| run: docker compose -f .github/docker-compose.yml up -d web | |
| - name: Setup permissions | |
| run: docker exec magento2-container make fs | |
| - name: Check install | |
| run: docker exec magento2-container make sys-check | |
| - name: Install plugin | |
| run: docker exec -u www-data magento2-container make plugin | |
| - name: Checkout developer module | |
| uses: actions/checkout@1e31de5234b9f8995739874a8ce0492dc87873e2 | |
| with: | |
| repository: Adyen/adyen-magento2-dev | |
| ref: "main" | |
| token: ${{ secrets.ADYEN_RELEASE_AUTOMATION_USER_TOKEN }} | |
| path: Developer | |
| - name: Make the folder for dev module | |
| run: docker exec -u www-data magento2-container mkdir -p /var/www/html/app/code/Adyen | |
| - name: Copy dev module into Docker container | |
| run: docker cp ./Developer magento2-container:/var/www/html/app/code/Adyen | |
| - name: Change ownership of developer module folder | |
| run: docker exec magento2-container chown -R www-data:www-data /var/www/html/app/code/Adyen/Developer | |
| - name: Enable developer module | |
| run: docker exec -u www-data magento2-container make dev-module | |
| - name: Install Express module | |
| if: ${{ env.EXPRESS_BRANCH }} | |
| env: | |
| EXPRESS_BRANCH: ${{ env.EXPRESS_BRANCH }} | |
| run: | | |
| docker exec -u www-data magento2-container \ | |
| composer require "adyen/adyen-magento2-expresscheckout:dev-$EXPRESS_BRANCH" | |
| - name: Enable Express module | |
| if: ${{ env.EXPRESS_BRANCH }} | |
| run: docker exec -u www-data magento2-container make enable-express | |
| - name: Switch to production mode | |
| run: docker exec -u www-data magento2-container make production | |
| - name: Setup permissions | |
| run: docker exec magento2-container make fs | |
| - name: Run E2E tests | |
| run: docker compose -f .github/docker-compose.e2e.yml run --rm playwright /e2e.sh ${{ env.TEST_GROUP }} | |
| env: | |
| INTEGRATION_TESTS_BRANCH: ${{ env.TEST_BRANCH }} | |
| MAGENTO_ADMIN_USERNAME: ${{secrets.MAGENTO_ADMIN_USERNAME}} | |
| MAGENTO_ADMIN_PASSWORD: ${{secrets.MAGENTO_ADMIN_PASSWORD}} | |
| MAGENTO_BASE_URL: ${{secrets.MAGENTO_BASE_URL}} | |
| PAYPAL_USERNAME: ${{secrets.PLAYWRIGHT_PAYPAL_USERNAME}} | |
| PAYPAL_PASSWORD: ${{secrets.PLAYWRIGHT_PAYPAL_PASSWORD}} | |
| GOOGLE_USERNAME: ${{secrets.PLAYWRIGHT_GOOGLE_USERNAME}} | |
| GOOGLE_PASSWORD: ${{secrets.PLAYWRIGHT_GOOGLE_PASSWORD}} | |
| AMAZON_USERNAME: ${{secrets.AMAZON_USERNAME}} | |
| AMAZON_PASSWORD: ${{secrets.AMAZON_PASSWORD}} | |
| WEBHOOK_USERNAME: admin | |
| WEBHOOK_PASSWORD: 1234 | |
| CI: TRUE | |
| - name: Delete Webhook | |
| run: | | |
| echo "Running DeleteWebhook command after E2E tests for clean-up" | |
| docker exec -u www-data magento2-container php bin/magento adyen:management:delete-webhook |