Skip to content

Add create user end to end test #684

Add create user end to end test

Add create user end to end test #684

Workflow file for this run

name: Testing
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and export
uses: docker/build-push-action@v4
with:
context: ./backend
tags: backend:dev
outputs: type=docker,dest=/tmp/backend.tar
push: false
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: backend
path: /tmp/backend.tar
retention-days: 1
backend-linting:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install just
uses: taiki-e/install-action@just
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Get full Python version
id: full-python-version
run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT
- name: Install Poetry
run: |
python -m pip install pipx
pipx install poetry
- name: Configure poetry
run: |
poetry config virtualenvs.create true
poetry config virtualenvs.in-project true
- name: Cache poetry venv
uses: actions/cache@v3
id: poetry-cache
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
- name: Ensure cache is healthy
if: steps.poetry-cache.outputs.cache-hit == 'true'
shell: bash
run: timeout 10s poetry run pip --version || rm -rf .venv
- name: Install Dependencies
run: just install-backend
- name: mypy check
run: just mypy-ci
backend-testing:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install just
uses: taiki-e/install-action@just
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Get full Python version
id: full-python-version
run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT
- name: Install Poetry
run: |
python -m pip install pipx
pipx install poetry
- name: Configure poetry
run: |
poetry config virtualenvs.create true
poetry config virtualenvs.in-project true
- name: Cache poetry venv
uses: actions/cache@v3
id: poetry-cache
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
- name: Ensure cache is healthy
if: steps.poetry-cache.outputs.cache-hit == 'true'
shell: bash
run: timeout 10s poetry run pip --version || rm -rf .venv
- name: Install Dependencies
run: just install-backend
- name: Test with pytest
run: just backend-test-ci
frontend-linting:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install just
uses: taiki-e/install-action@just
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Install Dependencies
run: just install-frontend
- name: Lint
run: just frontend-lint-ci
- name: Check
run: just frontend-check-ci
frontend-testing:
strategy:
fail-fast: false
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Download backend
uses: actions/download-artifact@v3
with:
name: backend
path: /tmp
retention-days: 1
- name: Load image
run: |
docker load --input /tmp/backend.tar
docker image ls -a
- name: Install just
uses: taiki-e/install-action@just
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Install Dependencies
run: just install-frontend
- name: Playwright install
run: just playwright-install
- name: Start API
run: just api-ci
- name: Frontend Tests
env:
VITE_API_PATH: "http://127.0.0.1:8000/api/v1"
run: |
curl "http://127.0.0.1:8000/api/v1/health"
just frontend-test-ci
- name: Upload test results
if: failure()
uses: actions/upload-artifact@v3
with:
name: playwright-report
path: frontend/test-results
retention-days: 1