diff --git a/.github/workflows/robot-ui-e2e-tests-dynamic-multistore.yml b/.github/workflows/robot-ui-e2e-tests-dynamic-multistore.yml new file mode 100644 index 000000000..07ef572a6 --- /dev/null +++ b/.github/workflows/robot-ui-e2e-tests-dynamic-multistore.yml @@ -0,0 +1,255 @@ +name: "[mp_b2c][master] Robot Regression UI E2E Dynamic Multistore" + +on: + pull_request: + types: [ labeled ] + push: + branches: + - master + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + docker-alpine-php-8-2-mariadb-robot-ui-dynamic-multistore-group-one: + if: > + (github.event_name == 'pull_request' && github.event.label.name == 'robot-regression-ui-e2e') || + (github.event_name == 'push' && github.ref == 'refs/heads/master') + name: "Docker / Alpine / PHP 8.2 / MariaDB / Robot / UI / Dynamic Multistore /Group One" + runs-on: ubuntu-22.04 + env: + PROGRESS_TYPE: plain + SPRYKER_PLATFORM_IMAGE: spryker/php:8.2 + TRAVIS: 1 + ROBOT_TESTS_ARTIFACTS_BUCKET_REGION: eu-west-1 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Cache pip packages + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('composer.lock') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install packages + run: | + sudo apt install awscli -q + python3 -m pip install --upgrade pip + python3 -m pip install -U robotframework + python3 -m pip install -U robotframework-requests + python3 -m pip install -U robotframework-jsonlibrary + python3 -m pip install -U robotframework-databaselibrary + python3 -m pip install -U robotframework-browser + python3 -m pip install PyMySQL + sudo npx playwright install-deps + + - name: Install docker-compose + run: | + sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + - name: Install Robot tests + run: | + git clone https://github.com/spryker/robotframework-suite-tests.git --single-branch --branch master robotframework-tests + - name: Install Project + continue-on-error: false + run: | + git clone https://github.com/spryker/docker-sdk.git ./docker + docker/sdk boot -v deploy.ci.acceptance.mariadb.dynamic-store.robot.yml + sudo bash -c "echo '127.0.0.1 backend-api.eu.spryker.local backend-api.us.spryker.local backend-gateway.eu.spryker.local backend-gateway.us.spryker.local backoffice.eu.spryker.local backoffice.us.spryker.local glue-backend.eu.spryker.local glue-backend.us.spryker.local glue-storefront.eu.spryker.local glue-storefront.us.spryker.local glue.eu.spryker.local glue.us.spryker.local mail.spryker.local mp.eu.spryker.local mp.us.spryker.local queue.spryker.local scheduler.spryker.local spryker.local swagger.spryker.local yves.eu.spryker.local yves.us.spryker.local date-time-configurator-example.spryker.local' >> /etc/hosts" + docker/sdk up -t -v + - name: Custom commands + continue-on-error: false + run: | + docker/sdk cli composer dump-autoload -o -a --apcu + SPRYKER_CURRENT_REGION=EU docker/sdk console queue:worker:start --stop-when-empty + - name: Run Tests + id: run_tests + continue-on-error: true + run: | + cd robotframework-tests + rfbrowser init + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results --exclude skip-due-to-issueORskip-due-to-refactoring --include group_one -s '*'.tests.ui.mp_b2c . + touch results/time.txt && echo $(date) > results/time.txt + - name: Rerun Failed Tests + if: steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results/rerun --runemptysuite --rerunfailed results/output.xml --output rerun.xml -s '*'.tests.ui.mp_b2c . + - name: Merge Test Results + if: always() && steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + rebot -d results --merge results/output.xml results/rerun/rerun.xml + - name: Upload artifacts + if: failure() + run: | + AWS_DEFAULT_REGION=${{env.ROBOT_TESTS_ARTIFACTS_BUCKET_REGION}} AWS_ACCESS_KEY_ID=${{ secrets.ROBOT_TESTS_ARTIFACTS_KEY }} AWS_SECRET_ACCESS_KEY=${{ secrets.ROBOT_TESTS_ARTIFACTS_SECRET }} aws s3 cp robotframework-tests/results s3://${{vars.ROBOT_TESTS_ARTIFACTS_BUCKET}}/master-robot-ui-ci-dms/mp_b2c_regression/group1/${GITHUB_RUN_ID}/PHP8.2MariaDBRobotUi/ \ + --recursive \ + --expires "$(date -d '+7 days' --utc +'%Y-%m-%dT%H:%M:%SZ')" + docker-alpine-php-8-2-mariadb-robot-ui-dynamic-multistore-group-two: + if: > + (github.event_name == 'pull_request' && github.event.label.name == 'robot-regression-ui-e2e') || + (github.event_name == 'push' && github.ref == 'refs/heads/master') + name: "Docker / Alpine / PHP 8.2 / MariaDB / Robot / UI / Dynamic Multistore /Group Two" + runs-on: ubuntu-22.04 + env: + PROGRESS_TYPE: plain + SPRYKER_PLATFORM_IMAGE: spryker/php:8.2 + TRAVIS: 1 + ROBOT_TESTS_ARTIFACTS_BUCKET_REGION: eu-west-1 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Cache pip packages + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('composer.lock') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install packages + run: | + sudo apt install awscli -q + python3 -m pip install --upgrade pip + python3 -m pip install -U robotframework + python3 -m pip install -U robotframework-requests + python3 -m pip install -U robotframework-jsonlibrary + python3 -m pip install -U robotframework-databaselibrary + python3 -m pip install -U robotframework-browser + python3 -m pip install PyMySQL + sudo npx playwright install-deps + + - name: Install docker-compose + run: | + sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + - name: Install Robot tests + run: | + git clone https://github.com/spryker/robotframework-suite-tests.git --single-branch --branch master robotframework-tests + - name: Install Project + continue-on-error: false + run: | + git clone https://github.com/spryker/docker-sdk.git ./docker + docker/sdk boot -v deploy.ci.acceptance.mariadb.dynamic-store.robot.yml + sudo bash -c "echo '127.0.0.1 backend-api.eu.spryker.local backend-api.us.spryker.local backend-gateway.eu.spryker.local backend-gateway.us.spryker.local backoffice.eu.spryker.local backoffice.us.spryker.local glue-backend.eu.spryker.local glue-backend.us.spryker.local glue-storefront.eu.spryker.local glue-storefront.us.spryker.local glue.eu.spryker.local glue.us.spryker.local mail.spryker.local mp.eu.spryker.local mp.us.spryker.local queue.spryker.local scheduler.spryker.local spryker.local swagger.spryker.local yves.eu.spryker.local yves.us.spryker.local date-time-configurator-example.spryker.local' >> /etc/hosts" + docker/sdk up -t -v + - name: Custom commands + continue-on-error: false + run: | + docker/sdk cli composer dump-autoload -o -a --apcu + SPRYKER_CURRENT_REGION=EU docker/sdk console queue:worker:start --stop-when-empty + - name: Run Tests + id: run_tests + continue-on-error: true + run: | + cd robotframework-tests + rfbrowser init + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results --exclude skip-due-to-issueORskip-due-to-refactoring --include group_two -s '*'.tests.ui.mp_b2c . + touch results/time.txt && echo $(date) > results/time.txt + - name: Rerun Failed Tests + if: steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results/rerun --runemptysuite --rerunfailed results/output.xml --output rerun.xml -s '*'.tests.ui.mp_b2c . + - name: Merge Test Results + if: always() && steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + rebot -d results --merge results/output.xml results/rerun/rerun.xml + - name: Upload artifacts + if: failure() + run: | + AWS_DEFAULT_REGION=${{env.ROBOT_TESTS_ARTIFACTS_BUCKET_REGION}} AWS_ACCESS_KEY_ID=${{ secrets.ROBOT_TESTS_ARTIFACTS_KEY }} AWS_SECRET_ACCESS_KEY=${{ secrets.ROBOT_TESTS_ARTIFACTS_SECRET }} aws s3 cp robotframework-tests/results s3://${{vars.ROBOT_TESTS_ARTIFACTS_BUCKET}}/master-robot-ui-ci-dms/mp_b2c_regression/group2/${GITHUB_RUN_ID}/PHP8.2MariaDBRobotUi/ \ + --recursive \ + --expires "$(date -d '+7 days' --utc +'%Y-%m-%dT%H:%M:%SZ')" + docker-alpine-php-8-2-mariadb-robot-ui-dynamic-multistore-group-three: + if: > + (github.event_name == 'pull_request' && github.event.label.name == 'robot-regression-ui-e2e') || + (github.event_name == 'push' && github.ref == 'refs/heads/master') + name: "Docker / Alpine / PHP 8.2 / MariaDB / Robot / UI / Dynamic Multistore / Group Three" + runs-on: ubuntu-22.04 + env: + PROGRESS_TYPE: plain + SPRYKER_PLATFORM_IMAGE: spryker/php:8.2 + TRAVIS: 1 + ROBOT_TESTS_ARTIFACTS_BUCKET_REGION: eu-west-1 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Cache pip packages + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('composer.lock') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install packages + run: | + sudo apt install awscli -q + python3 -m pip install --upgrade pip + python3 -m pip install -U robotframework + python3 -m pip install -U robotframework-requests + python3 -m pip install -U robotframework-jsonlibrary + python3 -m pip install -U robotframework-databaselibrary + python3 -m pip install -U robotframework-browser + python3 -m pip install PyMySQL + sudo npx playwright install-deps + + - name: Install docker-compose + run: | + sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + - name: Install Robot tests + run: | + git clone https://github.com/spryker/robotframework-suite-tests.git --single-branch --branch master robotframework-tests + - name: Install Project + continue-on-error: false + run: | + git clone https://github.com/spryker/docker-sdk.git ./docker + docker/sdk boot -v deploy.ci.acceptance.mariadb.dynamic-store.robot.yml + sudo bash -c "echo '127.0.0.1 backend-api.eu.spryker.local backend-api.us.spryker.local backend-gateway.eu.spryker.local backend-gateway.us.spryker.local backoffice.eu.spryker.local backoffice.us.spryker.local glue-backend.eu.spryker.local glue-backend.us.spryker.local glue-storefront.eu.spryker.local glue-storefront.us.spryker.local glue.eu.spryker.local glue.us.spryker.local mail.spryker.local mp.eu.spryker.local mp.us.spryker.local queue.spryker.local scheduler.spryker.local spryker.local swagger.spryker.local yves.eu.spryker.local yves.us.spryker.local date-time-configurator-example.spryker.local' >> /etc/hosts" + docker/sdk up -t -v + - name: Custom commands + continue-on-error: false + run: | + docker/sdk cli composer dump-autoload -o -a --apcu + SPRYKER_CURRENT_REGION=EU docker/sdk console queue:worker:start --stop-when-empty + - name: Run Tests + id: run_tests + continue-on-error: true + run: | + cd robotframework-tests + rfbrowser init + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results --exclude skip-due-to-issueORskip-due-to-refactoring --include group_tree -s '*'.tests.ui.mp_b2c . + touch results/time.txt && echo $(date) > results/time.txt + - name: Rerun Failed Tests + if: steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + robot -v env:ui_mp_b2c -v dms:true -v headless:true -v glue_env:http://glue.eu.spryker.local -v bapi_env:http://glue-backend.eu.spryker.local -v sapi_env:http://glue-storefront.eu.spryker.local -v yves_env:http://yves.eu.spryker.local -v zed_env:http://backoffice.eu.spryker.local -v mp_env:http://mp.eu.spryker.local/security-merchant-portal-gui/login/ -v ignore_console:false -d results/rerun --runemptysuite --rerunfailed results/output.xml --output rerun.xml -s '*'.tests.ui.mp_b2c . + - name: Merge Test Results + if: always() && steps.run_tests.outcome != 'success' + run: | + cd robotframework-tests + rebot -d results --merge results/output.xml results/rerun/rerun.xml + - name: Upload artifacts + if: failure() + run: | + AWS_DEFAULT_REGION=${{env.ROBOT_TESTS_ARTIFACTS_BUCKET_REGION}} AWS_ACCESS_KEY_ID=${{ secrets.ROBOT_TESTS_ARTIFACTS_KEY }} AWS_SECRET_ACCESS_KEY=${{ secrets.ROBOT_TESTS_ARTIFACTS_SECRET }} aws s3 cp robotframework-tests/results s3://${{vars.ROBOT_TESTS_ARTIFACTS_BUCKET}}/master-robot-ui-ci-dms/mp_b2c_regression/group3/${GITHUB_RUN_ID}/PHP8.2MariaDBRobotUi/ \ + --recursive \ + --expires "$(date -d '+7 days' --utc +'%Y-%m-%dT%H:%M:%SZ')"