We had lot of problems with the previous env.d system. Users were often confused by the need to change the env.d files manually, leading to issues when using the project locally. This commit introduces a new system that uses .env.local files, which are automatically created and can be modified by users without affecting the original env.d files. This should simplify the development process and reduce confusion by removing the need to manually edit env.d files.
139 lines
3.8 KiB
YAML
139 lines
3.8 KiB
YAML
name: Frontend Workflow
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- "*"
|
|
|
|
jobs:
|
|
|
|
install-dependencies:
|
|
uses: ./.github/workflows/dependencies.yml
|
|
with:
|
|
node_version: '22.x'
|
|
with-front-dependencies-installation: true
|
|
|
|
test-front:
|
|
needs: install-dependencies
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22.x"
|
|
|
|
- name: Restore the frontend cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: "src/frontend/**/node_modules"
|
|
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
|
|
fail-on-cache-miss: true
|
|
|
|
- name: Test App
|
|
run: cd src/frontend/ && yarn test
|
|
|
|
lint-front:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22.x"
|
|
- name: Restore the frontend cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: "src/frontend/**/node_modules"
|
|
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
|
|
fail-on-cache-miss: true
|
|
|
|
- name: Check linting
|
|
run: cd src/frontend/ && yarn lint
|
|
|
|
test-e2e-chromium:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22.x"
|
|
|
|
- name: Restore the frontend cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: "src/frontend/**/node_modules"
|
|
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
|
|
fail-on-cache-miss: true
|
|
|
|
- name: Set e2e env variables
|
|
run: cat env.d/development/common.e2e >> env.d/development/common.local
|
|
|
|
- name: Install Playwright Browsers
|
|
run: cd src/frontend/apps/e2e && yarn install --frozen-lockfile && yarn install-playwright chromium
|
|
|
|
- name: Start Docker services
|
|
run: make bootstrap-e2e FLUSH_ARGS='--no-input'
|
|
|
|
- name: Run e2e tests
|
|
run: cd src/frontend/ && yarn e2e:test --project='chromium'
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: playwright-chromium-report
|
|
path: src/frontend/apps/e2e/report/
|
|
retention-days: 7
|
|
|
|
test-e2e-other-browser:
|
|
runs-on: ubuntu-latest
|
|
needs: test-e2e-chromium
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22.x"
|
|
|
|
- name: Restore the frontend cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: "src/frontend/**/node_modules"
|
|
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
|
|
fail-on-cache-miss: true
|
|
|
|
- name: Set e2e env variables
|
|
run: cat env.d/development/common.e2e >> env.d/development/common.local
|
|
|
|
- name: Install Playwright Browsers
|
|
run: cd src/frontend/apps/e2e && yarn install --frozen-lockfile && yarn install-playwright firefox webkit chromium
|
|
|
|
- name: Start Docker services
|
|
run: make bootstrap-e2e FLUSH_ARGS='--no-input'
|
|
|
|
- name: Run e2e tests
|
|
run: cd src/frontend/ && yarn e2e:test --project=firefox --project=webkit
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: playwright-other-report
|
|
path: src/frontend/apps/e2e/report/
|
|
retention-days: 7
|