worklow fix #74
Workflow file for this run
This file contains 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: PS817 + E2E Cypress | |
on: [push] | |
jobs: | |
Cypress-E2E-817: | |
runs-on: ubuntu-latest | |
env: | |
NGROK_TOKEN: ${{ secrets.NGROK_TOKEN }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- prestashop: 'PS817' | |
make: 'make e2eh817' | |
subdomain: 'demoshop8' | |
port: '8002' | |
yml: 'docker-compose.8.yml' | |
url: 'https://demoshop8.ngrok.io' | |
test_spec: 'cypress/e2e/**' | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- run: wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip | |
shell: bash | |
- run: unzip -qq -o ngrok-stable-linux-amd64.zip | |
shell: bash | |
- run: ./ngrok authtoken ${{ secrets.NGROK_TOKEN }} | |
shell: bash | |
- run: ./ngrok http -region=us -subdomain=${{ matrix.subdomain }} ${{ matrix.port }} > ngrok.log & | |
shell: bash | |
- name: Install composer | |
run: composer i | |
- name: Install package | |
run: | | |
npm ci | |
npm update | |
npx browserslist@latest --update-db | |
- name: ${{ matrix.prestashop }} installing / Module Install and Uninstall testing | |
run: | | |
${{ matrix.make }} | |
- name: Waiting for Ngrok tunnel | |
run: | | |
URL="${{ matrix.url }}" | |
TIMEOUT=120 | |
start_time=$(date +%s) | |
while true; do | |
current_time=$(date +%s) | |
elapsed_time=$((current_time - start_time)) | |
if [ "$elapsed_time" -ge "$TIMEOUT" ]; then | |
echo "Timeout reached. Ngrok tunnel is not ready within $TIMEOUT seconds." | |
exit 1 | |
fi | |
response=$(curl -s -o /dev/null -w "%{http_code}" "$URL") | |
if [ "$response" = "302" ]; then | |
echo "URL is returning 302 HTTP status code, Ngrok tunnel is reached, good to go!" | |
break # Exit the loop if the response is 302 | |
else | |
echo "URL is not ready yet, because Ngrok sessions are all in use at the moment, please wait. Retrying to build the Ngrok tunnel again in 5 seconds..." | |
sleep 5 # Wait for 5 seconds before retrying | |
./ngrok http -region=us -subdomain=${{ matrix.subdomain }} ${{ matrix.port }} > ngrok.log & | |
fi | |
done | |
- name: Running ${{ matrix.prestashop }} Cypress E2E tests | |
run: | | |
export CYPRESS_SAFERPAY_EMAIL='${{ secrets.SAFERPAY_EMAIL }}' | |
export CYPRESS_SAFERPAY_PASSWORD='${{ secrets.SAFERPAY_PASSWORD }}' | |
export CYPRESS_SAFERPAY_USERNAME_TEST='${{ secrets.PS1786_SAFERPAY_USERNAME_TEST }}' | |
export CYPRESS_SAFERPAY_PASSWORD_TEST='${{ secrets.PS1786_SAFERPAY_PASSWORD_TEST }}' | |
export CYPRESS_SAFERPAY_CUSTOMER_ID_TEST='${{ secrets.PS1786_SAFERPAY_CUSTOMER_ID_TEST }}' | |
export CYPRESS_SAFERPAY_TERMINAL_ID_TEST='${{ secrets.PS1786_SAFERPAY_TERMINAL_ID_TEST }}' | |
export CYPRESS_SAFERPAY_MERCHANT_EMAILS_TEST='${{ secrets.SAFERPAY_MERCHANT_EMAILS_TEST }}' | |
export CYPRESS_SAFERPAY_FIELDS_ACCESS_TOKEN_TEST='${{ secrets.PS1786_SAFERPAY_FIELDS_ACCESS_TOKEN_TEST }}' | |
export NGROK_URL='${{ env.NGROK_URL }}' | |
npx cypress cache prune | |
npm install -D cypress | |
npm ci | |
npx cypress run --headed --spec "${{ matrix.test_spec }}" | |
# - name: Running ${{ matrix.prestashop }} Cypress E2E tests | |
# uses: cypress-io/github-action@v6 | |
# with: | |
# record: true | |
# parallel: true | |
# group: 'SaferpayTests' | |
# spec: ${{ matrix.test_spec }} | |
# env: | |
# CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# CYPRESS_SAFERPAY_EMAIL: ${{ secrets.SAFERPAY_EMAIL }} | |
# CYPRESS_SAFERPAY_PASSWORD: ${{ secrets.SAFERPAY_PASSWORD }} | |
# CYPRESS_SAFERPAY_USERNAME_TEST: ${{ secrets.PS1786_SAFERPAY_USERNAME_TEST }} | |
# CYPRESS_SAFERPAY_PASSWORD_TEST: ${{ secrets.PS1786_SAFERPAY_PASSWORD_TEST }} | |
# CYPRESS_SAFERPAY_CUSTOMER_ID_TEST: ${{ secrets.PS1786_SAFERPAY_CUSTOMER_ID_TEST }} | |
# CYPRESS_SAFERPAY_TERMINAL_ID_TEST: ${{ secrets.PS1786_SAFERPAY_TERMINAL_ID_TEST }} | |
# CYPRESS_SAFERPAY_MERCHANT_EMAILS_TEST: ${{ secrets.SAFERPAY_MERCHANT_EMAILS_TEST }} | |
# CYPRESS_SAFERPAY_FIELDS_ACCESS_TOKEN_TEST: ${{ secrets.PS1786_SAFERPAY_FIELDS_ACCESS_TOKEN_TEST }} | |
# NGROK_URL: ${{ env.NGROK_URL }} | |
- name: Archive videos and screenshots of Cypress testing | |
if: ${{ always() }} | |
uses: actions/[email protected] | |
with: | |
name: videos_screenshots | |
retention-days: 2 | |
path: | | |
cypress/videos | |
cypress/screenshots |