From ec8f383cf7f14d06781870ae28aed3e5bc46885e Mon Sep 17 00:00:00 2001 From: Xpirix Date: Mon, 20 Jan 2025 12:11:13 +0300 Subject: [PATCH 1/4] Separate django and playwright test --- .github/workflows/playwright-e2e.yml | 65 ++++++++++++++++++++++++++++ .github/workflows/test.yaml | 36 --------------- 2 files changed, 65 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/playwright-e2e.yml diff --git a/.github/workflows/playwright-e2e.yml b/.github/workflows/playwright-e2e.yml new file mode 100644 index 00000000..863c4bfa --- /dev/null +++ b/.github/workflows/playwright-e2e.yml @@ -0,0 +1,65 @@ +name: ๐Ÿงช Playwright End To End (e2e) Tests Workflow + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + e2e-tests: + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ›’ Checkout + uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Generate the .env file + run: cp .env.template .env + + - name: Run the containers + run: docker compose up -d db devweb + + + - name: Wait for the containers to start + run: sleep 15 + + - name: Start Django server + run: | + docker compose exec -T devweb bash -c "python manage.py loaddata fixtures/*.json" + docker compose exec -T devweb bash -c "nohup python manage.py runserver 0.0.0.0:8081 &" + # Wait for the server to start + until curl -s http://localhost:62202; do + echo "Waiting for Django server to be up..." + sleep 5 + done + + - name: Test django endpoint + run: | + curl -v http://0.0.0.0:62202 + if [ $? -ne 0 ]; then + echo "Curl command failed" + exit 1 + fi + + - name: Install playwright dependencies + working-directory: playwright/ci-test + run: | + npm install + npm ci + npx playwright install --with-deps + - name: Run Playwright tests + working-directory: playwright/ci-test + run: npx playwright test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright/ci-test/playwright-report/ + retention-days: 30 + diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index cad4b21a..624fcef3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -46,9 +46,6 @@ jobs: working-directory: dockerize steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 - with: - node-version: 20 - name: Generate the .env file run: cp .env.template .env @@ -71,36 +68,3 @@ jobs: python manage.py migrate && python manage.py test ' - - name: Start Django server - run: | - docker compose exec -T devweb bash -c "python manage.py loaddata fixtures/*.json" - docker compose exec -T devweb bash -c "nohup python manage.py runserver 0.0.0.0:8081 &" - # Wait for the server to start - until curl -s http://localhost:62202; do - echo "Waiting for Django server to be up..." - sleep 5 - done - - - name: Test django endpoint - run: | - curl -v http://0.0.0.0:62202 - if [ $? -ne 0 ]; then - echo "Curl command failed" - exit 1 - fi - - - name: Install playwright dependencies - working-directory: playwright/ci-test - run: | - npm install - npm ci - npx playwright install --with-deps - - name: Run Playwright tests - working-directory: playwright/ci-test - run: npx playwright test - - uses: actions/upload-artifact@v3 - if: always() - with: - name: playwright-report - path: playwright/ci-test/playwright-report/ - retention-days: 30 From 74833bf19ec05b81fdbf29a0473d5781238e0c40 Mon Sep 17 00:00:00 2001 From: Xpirix Date: Mon, 20 Jan 2025 12:16:26 +0300 Subject: [PATCH 2/4] Change branch to master in e2e test --- .github/workflows/playwright-e2e.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/playwright-e2e.yml b/.github/workflows/playwright-e2e.yml index 863c4bfa..dc8976c9 100644 --- a/.github/workflows/playwright-e2e.yml +++ b/.github/workflows/playwright-e2e.yml @@ -2,9 +2,9 @@ name: ๐Ÿงช Playwright End To End (e2e) Tests Workflow on: push: - branches: [ main ] + branches: [ master ] pull_request: - branches: [ main ] + branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From dae09f68ea9a021a61fb56b4ff3f07be07c8318a Mon Sep 17 00:00:00 2001 From: Xpirix Date: Mon, 20 Jan 2025 12:58:50 +0300 Subject: [PATCH 3/4] Specify the default directory in e2e test --- .github/workflows/playwright-e2e.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/playwright-e2e.yml b/.github/workflows/playwright-e2e.yml index dc8976c9..d2804599 100644 --- a/.github/workflows/playwright-e2e.yml +++ b/.github/workflows/playwright-e2e.yml @@ -12,6 +12,9 @@ on: jobs: e2e-tests: runs-on: ubuntu-latest + defaults: + run: + working-directory: dockerize steps: - name: ๐Ÿ›’ Checkout uses: actions/checkout@v4 From 66e4cec065f56c27679285233f955089611cccbd Mon Sep 17 00:00:00 2001 From: Xpirix Date: Mon, 20 Jan 2025 13:04:36 +0300 Subject: [PATCH 4/4] Fix migrations issues in GH actions --- .github/workflows/playwright-e2e.yml | 11 +++++++++-- .github/workflows/test.yaml | 2 -- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/playwright-e2e.yml b/.github/workflows/playwright-e2e.yml index d2804599..b868e7d5 100644 --- a/.github/workflows/playwright-e2e.yml +++ b/.github/workflows/playwright-e2e.yml @@ -34,8 +34,15 @@ jobs: - name: Start Django server run: | - docker compose exec -T devweb bash -c "python manage.py loaddata fixtures/*.json" - docker compose exec -T devweb bash -c "nohup python manage.py runserver 0.0.0.0:8081 &" + docker compose exec -T devweb bash -c ' + set -e # Exit immediately if any command fails + python manage.py makemigrations --merge --noinput && + python manage.py makemigrations feedjack && + python manage.py makemigrations && + python manage.py migrate && + python manage.py loaddata fixtures/*.json + nohup python manage.py runserver 0.0.0.0:8081 & + ' # Wait for the server to start until curl -s http://localhost:62202; do echo "Waiting for Django server to be up..." diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 624fcef3..ea2827e3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -62,8 +62,6 @@ jobs: run: | docker compose exec -T devweb bash -c ' set -e # Exit immediately if any command fails - python manage.py makemigrations --merge --noinput && - python manage.py makemigrations feedjack && python manage.py makemigrations && python manage.py migrate && python manage.py test