From 0f33087a34cbcb5cdb098cee21df5bdc61f9a0b7 Mon Sep 17 00:00:00 2001 From: kaan Date: Sat, 4 Nov 2023 11:52:17 +0100 Subject: [PATCH] fix: CI --- .github/workflows/deploy.yaml | 68 +++++++++++++++++++++++++++++------ package.json | 7 ++-- 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 4a45b30..15a3ab2 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,20 +1,66 @@ -name: Deploy +# Sample workflow for building and deploying a VitePress site to GitHub Pages +# +name: Deploy VitePress site to Pages on: + # Runs on pushes targeting the `main` branch. Change this to `master` if you're + # using the `master` branch as the default branch. push: - branches: - - main + branches: [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: + # Build job build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - - run: npm ci - - name: Build live demo - run: npm run build:live-demo - - uses: peaceiris/actions-gh-pages@v3 + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 # Not needed if lastUpdated is not enabled + # - uses: pnpm/action-setup@v2 # Uncomment this if you're using pnpm + # - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun + - name: Setup Node + uses: actions/setup-node@v3 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/.vitepress/dist + node-version: 18 + cache: npm # or pnpm / yarn + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Install dependencies + run: npm ci # or pnpm install / yarn install / bun install + - name: Build with VitePress + run: | + npm run build:pages + touch docs/.vitepress/dist/.nojekyll + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: docs/.vitepress/dist + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-latest + name: Deploy + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/package.json b/package.json index 70a6d86..df8b25c 100644 --- a/package.json +++ b/package.json @@ -40,16 +40,17 @@ "type": "module", "scripts": { "dev": "vite", - "build": "npm run test && vite build --mode production && npm run generate:types && npm run docs:build && npm run build:live-demo", + "build": "npm run test && vite build --mode production && npm run generate:types && npm run build:pages", "build:lib": "npm run test && vite build --mode production && npm run generate:types", "clean": "rm -rf ./dist && rm -rf ./live-demo && rm -rf ./coverage", - "coverage:web": "http-server ./coverage", - "build:live-demo": "vite build --mode live-demo --outDir ./docs/.vitepress/dist/live-demo", + "coverage:web": "http-server ./coverage", "generate:types": "tsc -p tsconfig-build.json --declaration --emitDeclarationOnly true --outdir ./dist", "changeset": "changeset", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", + "build:pages": "npm run docs:build && npm run build:live-demo", + "build:live-demo": "vite build --mode live-demo --outDir ./docs/.vitepress/dist/live-demo", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:preview": "vitepress preview docs"