Scene generation and more #638
Workflow file for this run
This file contains hidden or 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: Run Tests on Pull Requests | |
| on: | |
| pull_request: | |
| branches: | |
| - '**' | |
| jobs: | |
| nim: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| - name: Set up Python | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: '3.12' | |
| - name: Cache pip packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install python dependencies | |
| run: | | |
| cd backend | |
| python -m pip install --upgrade uv | |
| uv venv | |
| uv pip install -r requirements.txt | |
| - uses: jiro4989/setup-nim-action@v1 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: FrameOS nim build | |
| run: | | |
| cd frameos | |
| nimble install -d | |
| nimble setup | |
| FRAMEOS_ROOT_DIR="." python3 ../e2e/makeapploaders.py | |
| nimble build | |
| - name: FrameOS nim tests | |
| run: | | |
| cd frameos | |
| nimble test | |
| - name: Visual regression tests | |
| run: | | |
| cd e2e | |
| source ../backend/.venv/bin/activate | |
| make | |
| - name: Commit updated snapshots | |
| if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} | |
| uses: EndBug/add-and-commit@v9 | |
| id: commit | |
| with: | |
| add: 'e2e/*' | |
| author_name: FrameOS Bot | |
| author_email: [email protected] | |
| message: 'Update snapshots' | |
| pull: --rebase --autostash | |
| default_author: github_actions | |
| python: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Set up Python | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: '3.12' | |
| - name: Install redis | |
| run: sudo apt-get -y update && sudo apt-get install -y redis-server | |
| - name: Cache pip packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install python dependencies | |
| run: | | |
| cd backend | |
| python -m pip install --upgrade uv | |
| uv venv | |
| uv pip install -r requirements.txt | |
| - name: Run Pytest | |
| run: | | |
| cd backend | |
| source .venv/bin/activate | |
| # fake these folders so static asset serving doesn't fail | |
| mkdir -p ../frontend/dist/assets | |
| mkdir -p ../frontend/dist/img | |
| mkdir -p ../frontend/dist/static | |
| TEST=1 pytest | |
| typescript: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Set up Node | |
| uses: actions/setup-node@v2 | |
| with: | |
| node-version: '16.x' | |
| - name: Build frontend | |
| run: | | |
| cd frontend | |
| npm install | |
| npm run build | |