diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..43204b70 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,45 @@ +name: Test on Pull Request + +on: + pull_request: + branches: + - '**' # Trigger on all branches + workflow_dispatch: # Allows manual trigger from the GitHub Actions tab + +jobs: + install: + name: 🧶 Install dependencies + runs-on: ubuntu-latest + steps: + - name: Setup dependency cache + uses: actions/cache@v4 + with: + path: /usr/local/share/.cache/yarn/v6 + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + + - name: Install + run: yarn install + + test: + name: ⚙️ Run Tests + runs-on: ubuntu-latest + needs: install + steps: + - name: Run Tests + run: | + FORCE_COLOR=true + DESTINATION_BRANCH=${{ github.event.pull_request.base.ref }} # Set branch + yarn nx affected:test --base=$DESTINATION_BRANCH --ci --code-coverage --parallel --max-parallel=3 + + code-quality: + name: 🕵️‍♀️ Code Quality + runs-on: ubuntu-latest + needs: install + steps: + - name: Code Quality Check + run: | + FORCE_COLOR=true + DESTINATION_BRANCH=${{ github.event.pull_request.base.ref }} # Set branch + yarn nx affected:lint --base=$DESTINATION_BRANCH --parallel --max-parallel=3 + yarn nx format:check --base=$DESTINATION_BRANCH --parallel --max-parallel=3 + yarn nx affected -t check-types --base=$DESTINATION_BRANCH --parallel --max-parallel=3