diff --git a/.github/workflows/astro-build-and-test.yml b/.github/workflows/astro-build-and-test.yml new file mode 100644 index 00000000..392a35d0 --- /dev/null +++ b/.github/workflows/astro-build-and-test.yml @@ -0,0 +1,42 @@ +name: Build and Test Astro App + +on: + pull_request: + types: [opened, synchronize] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x] + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Cache npm modules + uses: actions/cache@v3 + with: + path: | + ~/.npm + node_modules + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install dependencies + run: npm install + + - name: Build Astro application + run: npm run build + + - name: Test Astro application + run: npm run test