name: "Backend: Build and Test" on: workflow_dispatch: push: branches: [ "main" ] paths: - 'backend/**' pull_request: branches: [ "main" ] paths: - 'backend/**' env: BACKEND_SERVER_HOSTNAME: 'http://localhost:8080' jobs: build_debug: runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v2 with: deno-version: v2.x - name: Install nasm run: sudo apt-get install nasm - name: Build debug with tests run: make -B INCLUDE_TESTS=1 - name: Run tests run: ./build/server --run-tests build_release: runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v2 with: deno-version: v2.x - name: Install nasm run: sudo apt-get install nasm - name: Build release with tests run: make -B RELEASE=1 INCLUDE_TESTS=1 - name: Run tests run: ./build/server --run-tests test_debug: runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v2 with: deno-version: v2.x - name: Install nasm run: sudo apt-get install nasm - name: Cache dependencies run: deno cache --check test/test.ts - name: Build with tests run: make -B - name: Setup database run: make drop_database - name: Run tests timeout-minutes: 1 run: | ./build/server & sleep 1 deno test --allow-env --allow-net test/test.ts test_release: runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v2 with: deno-version: v2.x - name: Install nasm run: sudo apt-get install nasm - name: Cache dependencies run: deno cache --check test/test.ts - name: Build release with tests run: make -B RELEASE=1 - name: Setup database run: make drop_database - name: Run tests timeout-minutes: 1 run: | ./build/server & sleep 1 deno test --allow-env --allow-net test/test.ts