Skip to content
Snippets Groups Projects
Select Git revision
  • 2759d7959977fc41f9ccf7399beb9a4c0cb3aa55
  • master default protected
2 results

astro.yml

Blame
  • astro.yml 3.26 KiB
    # Sample workflow for building and deploying an Astro site to GitHub Pages
    #
    # To get started with Astro see: https://docs.astro.build/en/getting-started/
    #
    name: Deploy Astro site to Pages
    
    on:
      # Runs on pushes targeting the default branch
      push:
        branches: ["master"]
    
      # Allows you to run this workflow manually from the Actions tab
      workflow_dispatch:
    
    # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
    permissions:
      contents: read
      pages: write
      id-token: write
    
    # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
    # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
    concurrency:
      group: "pages"
      cancel-in-progress: false
    
    env:
      BUILD_PATH: "." # default value when not using subfolders
      # BUILD_PATH: subfolder
    
    jobs:
      build:
        name: 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
                echo "runner=yarn" >> $GITHUB_OUTPUT
                echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT
                exit 0
              elif [ -f "${{ github.workspace }}/pnpm-lock.yaml" ]; then
                echo "manager=pnpm" >> $GITHUB_OUTPUT
                echo "command=install" >> $GITHUB_OUTPUT
                echo "runner=pnpm" >> $GITHUB_OUTPUT
                echo "lockfile=pnpm-lock.yaml" >> $GITHUB_OUTPUT
                exit 0
              elif [ -f "${{ github.workspace }}/package.json" ]; then
                echo "manager=npm" >> $GITHUB_OUTPUT
                echo "command=ci" >> $GITHUB_OUTPUT
                echo "runner=npx --no-install" >> $GITHUB_OUTPUT
                echo "lockfile=package-lock.json" >> $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 }}
              cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
          - name: Setup Pages
            id: pages