diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..798dd0e --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,54 @@ +name: Test + +on: + push: + branches: + - '**' + pull_request: + branches: + - main + +jobs: + unit-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run unit tests + run: npm run test:run + + # Acceptance tests that don't require DB read/write + # These are safe to run on every commit + safe-acceptance-tests: + runs-on: ubuntu-latest + needs: unit-tests + if: github.event_name == 'pull_request' + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run safe acceptance tests + # These tests should not read/write to the database + # They might test UI components, routing, or static content + run: npm run test:acceptance -- --grep "safe|static|ui|component"