# this workflow runs tests on pull request and push events targeting master branch # it also verify the generated code is up to date and valid name: Test on: pull_request: branches: - master push: branches: - master jobs: get-ci-image: runs-on: ubuntu-latest outputs: image_tag: ${{ steps.setup.outputs.image_tag }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup CI metadata id: setup uses: ./.github/actions/setup-ci-metadata with: registry: ${{ secrets.OVERRIDE_REGISTRY }} image_tag: latest test-crates: runs-on: ubuntu-latest needs: - frontend-build - get-ci-image container: image: ${{ needs.get-ci-image.outputs.image_tag }} steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Rust, checkout and restore caches uses: ./.github/actions/setup-rust - name: Restore frontend build cache uses: actions/cache@v4 with: path: apps/nxmesh-frontend/dist key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} restore-keys: | frontend-build-${{ runner.os }}- # TODO: uncomment until artifact hanlding fixed in gitea # - name: Download frontend build artifact # uses: actions/download-artifact@v4 # with: # name: frontend-dist # path: apps/nxmesh-frontend/dist # - name: Copy frontend build to expected location # run: | # # unlink frontend-dist # rm -f apps/nxmesh-master/frontend-dist || true # rm -rf apps/nxmesh-master/frontend-dist || true # cp -r apps/nxmesh-frontend/dist apps/nxmesh-master/frontend-dist # ls -la apps/nxmesh-master/frontend-dist - name: Create dummy build artifacts run: | rm -f apps/nxmesh-master/frontend-dist || true mkdir -p apps/nxmesh-master/frontend-dist echo "

Dummy Build

" > apps/nxmesh-master/frontend-dist/index.html - name: Run tests run: cargo test --all-features -- --show-output lint-crates: runs-on: ubuntu-latest needs: - frontend-build - get-ci-image container: image: ${{ needs.get-ci-image.outputs.image_tag }} steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Rust, checkout and restore caches uses: ./.github/actions/setup-rust with: components: clippy, rustfmt - name: Restore frontend build cache uses: actions/cache@v4 with: path: apps/nxmesh-frontend/dist key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} restore-keys: | frontend-build-${{ runner.os }}- # TODO: uncomment until artifact hanlding fixed in gitea # - name: Download frontend build artifact # uses: actions/download-artifact@v4 # with: # name: frontend-dist # path: apps/nxmesh-frontend/dist # - name: Copy frontend build to expected location # run: | # # unlink frontend-dist # rm -f apps/nxmesh-master/frontend-dist || true # rm -rf apps/nxmesh-master/frontend-dist || true # cp -r apps/nxmesh-frontend/dist apps/nxmesh-master/frontend-dist - name: Create dummy build artifacts run: | rm -f apps/nxmesh-master/frontend-dist || true mkdir -p apps/nxmesh-master/frontend-dist echo "

Dummy Build

" > apps/nxmesh-master/frontend-dist/index.html - name: Run clippy run: cargo clippy --all-features - name: Check code formatting run: cargo fmt --all -- --check lint-frontend: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - uses: oven-sh/setup-bun@v2 name: Install Bun - name: Install frontend dependencies run: | cd apps/nxmesh-frontend bun install - name: Run frontend linter run: | cd apps/nxmesh-frontend bun run lint test-frontend: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - uses: oven-sh/setup-bun@v2 name: Install Bun - name: Install frontend dependencies run: | cd apps/nxmesh-frontend bun install - name: Run frontend tests run: | cd apps/nxmesh-frontend bun run test frontend-build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - uses: oven-sh/setup-bun@v2 name: Install Bun - name: Install frontend dependencies run: | cd apps/nxmesh-frontend bun install - name: Build frontend run: | cd apps/nxmesh-frontend bun run build - name: Cache frontend build uses: actions/cache@v4 with: path: apps/nxmesh-frontend/dist key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} # IGNORE restore-keys # TODO: uncomment until artifact hanlding fixed in gitea # - name: Upload frontend build artifact # uses: actions/upload-artifact@v4 # with: # name: frontend-dist # path: apps/nxmesh-frontend/dist