From ba81dc1be703360ef61ac6b28abe49c436d199fa Mon Sep 17 00:00:00 2001 From: Anders Nylund Date: Thu, 29 Feb 2024 08:22:01 +0200 Subject: [PATCH] Use bun (#44) * Use bun * Setup bun --- .github/workflows/ci.yml | 51 ++++++++++------------------------------ 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fef5e38..79884cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,32 +1,23 @@ # 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/ -# +# Updated to use Bun for package management and script execution 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 + branches: ['master'] 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" + group: 'pages' cancel-in-progress: false env: - BUILD_PATH: "." # default value when not using subfolders - # BUILD_PATH: subfolder + BUILD_PATH: '.' # default value when not using subfolders jobs: build: @@ -35,41 +26,25 @@ jobs: 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 - 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 - 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 }}/package-lock.json + + - name: Setup Bun + uses: oven-sh/setup-bun@v1.1.1 + - name: Setup Pages id: pages uses: actions/configure-pages@v4 + - name: Install dependencies - run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + run: bun install working-directory: ${{ env.BUILD_PATH }} + - name: Build with Astro run: | - ${{ steps.detect-package-manager.outputs.runner }} astro build \ + bun astro build \ --site "${{ steps.pages.outputs.origin }}" \ --base "${{ steps.pages.outputs.base_path }}" working-directory: ${{ env.BUILD_PATH }} + - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: