diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index da9418a7..29f92b55 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,42 +1,88 @@ -name: GitHub Pages - +name: Github Pages on: push: branches: - - main - develop + - main + + # 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 jobs: - deploy: + # Build job + build: runs-on: ubuntu-latest - permissions: - contents: write - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} steps: - - uses: actions/checkout@v4 - + - 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' + node-version: "20" + cache: ${{ steps.detect-package-manager.outputs.manager }} +# - name: Setup Pages +# uses: actions/configure-pages@v5 +# with: +# # Automatically inject router.base in your Nuxt configuration file and set +# # target to static (https://nuxtjs.org/docs/configuration-glossary/configuration-target/). +# # +# # You may remove this line if you want to manage the configuration yourself. +# static_site_generator: nuxt +# - name: Restore cache +# uses: actions/cache@v4 +# with: +# path: | +# dist +# .nuxt +# key: ${{ runner.os }}-nuxt-build-${{ hashFiles('dist') }} +# restore-keys: | +# ${{ runner.os }}-nuxt-build- + - name: Install dependencies + run: | + npm ci + npm run build + cp -r dist/ examples/dist - - name: Cache dependencies - uses: actions/cache@v4 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - run: npm ci - - run: npm run build - - run: mkdir -p ./examples - #- run: cp -r dist/ examples/dist + path: ./examples - - name: deploy - uses: peaceiris/actions-gh-pages@v4 - if: github.ref == 'refs/heads/main' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./examples + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4