diff --git a/.github/workflows/gatsby-pr.yml b/.github/workflows/gatsby-pr.yml new file mode 100644 index 0000000..b37fd7f --- /dev/null +++ b/.github/workflows/gatsby-pr.yml @@ -0,0 +1,49 @@ +# Workflow for building a Gatsby site +# +# To get started with Gatsby see: https://www.gatsbyjs.com/docs/quick-start/ +# +name: Build Gatsby site (pull requests) + +on: + # Runs on pull requests targeting the default branch + pull_request: + branches: ["main"] + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine package manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: ${{ steps.detect-package-manager.outputs.manager }} + - name: Install dependencies + run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + - name: Build with Gatsby + env: + PREFIX_PATHS: 'true' + run: ${{ steps.detect-package-manager.outputs.manager }} run build