Skip to content

Ensure reproducible development and test environment #1317

Ensure reproducible development and test environment

Ensure reproducible development and test environment #1317

Workflow file for this run

name: tests
on:
push:
schedule:
- cron: '0 2 * * 6'
env:
RUST_VERSION: "1.68.2"
TRUNK_VERSION: "0.17.5"
POETRY_VERSION: "1.7.1"
POETRY_DYNAMIC_VERSIONING_VERSION: "1.2.0"
jobs:
check_frontend:
name: Frontend Checks
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${{ env.RUST_VERSION }}
echo ~/.cargo/bin >> $GITHUB_PATH
- name: Install dependencies
run: |
pipx install poetry==${{ env.POETRY_VERSION }} poetry-dynamic-versioning==${{ env.POETRY_VERSION }}
- name: Check
run: |
make check_frontend
check_backend:
name: Backend Checks
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
target: [black, ruff, mypy]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: poetry
- name: Install dependencies
run: |
pipx install poetry==${{ env.POETRY_VERSION }} poetry-dynamic-versioning==${{ env.POETRY_VERSION }}
poetry install
- name: Check
run: |
make check_${{ matrix.target }}
test_installation:
name: Installation Test
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: poetry
- name: Set up Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${{ env.RUST_VERSION }} --target wasm32-unknown-unknown --profile minimal
echo ~/.cargo/bin >> $GITHUB_PATH
- uses: Swatinem/rust-cache@v2
with:
workspaces: frontend
- name: Install dependencies
run: |
sudo apt install libarchive-tools
pipx install poetry==${{ env.POETRY_VERSION }} poetry-dynamic-versioning==${{ env.POETRY_VERSION }}
cargo install --locked trunk@${{ env.TRUNK_VERSION }}
- name: Test
run: |
make test_installation
test_frontend:
name: Frontend Tests
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${{ env.RUST_VERSION }} --profile minimal
echo ~/.cargo/bin >> $GITHUB_PATH
- name: Check
run: |
make test_frontend
test_backend:
name: Backend Tests
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: poetry
- name: Install dependencies
run: |
pipx install poetry==${{ env.POETRY_VERSION }} poetry-dynamic-versioning==${{ env.POETRY_VERSION }}
poetry install
- name: Test
run: |
make test_backend
test_e2e:
name: End-to-End Tests
runs-on: ubuntu-20.04
env:
python-version: "3.10"
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ env.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.python-version }}
cache: poetry
- name: Set up Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${{ env.RUST_VERSION }} --target wasm32-unknown-unknown --profile minimal
echo ~/.cargo/bin >> $GITHUB_PATH
- uses: Swatinem/rust-cache@v2
with:
workspaces: frontend
- name: Install dependencies
run: |
sudo apt install libarchive-tools
pipx install poetry==${{ env.POETRY_VERSION }} poetry-dynamic-versioning==${{ env.POETRY_VERSION }}
poetry install
cargo install --locked trunk@${{ env.TRUNK_VERSION }}
- name: Test
run: |
make test_e2e