From 85eebeb4f7fc7c56b63abf81c29a109dfc78e4f0 Mon Sep 17 00:00:00 2001 From: sleepyfran Date: Tue, 22 Oct 2024 11:39:23 +0200 Subject: [PATCH] Add deployment workflow --- .github/workflows/deploy.yml | 47 ++++++++++++++++++++++++++ vite.config.ts | 65 ++++++++++++++++++++---------------- 2 files changed, 83 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..494cff8 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,47 @@ +name: Deploy Echo + +on: + push: + branches: ["main"] + + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 22 + cache: "yarn" + - name: Install dependencies + run: yarn + - name: Build + run: yarn build + env: + VITE_CLIENT_ID: ${{ secrets.VITE_CLIENT_ID }} + VITE_CLIENT_SECRET: ${{ secrets.VITE_CLIENT_SECRET }} + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: "./dist" + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/vite.config.ts b/vite.config.ts index 9d7e68a..e187ce5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,38 +1,45 @@ import { defineConfig } from "vite"; import fs from "fs"; -export default defineConfig({ - build: { - outDir: "../../dist", - rollupOptions: { - output: { - manualChunks: (id) => { - if ( - id.includes("node_modules/music-metadata") || - id.includes("node_modules/buffer") - ) { - return "vendor-music-metadata"; - } +export default defineConfig(({ command }) => { + const serverOptions = + command == "serve" + ? { + https: { + key: fs.readFileSync("./tools/certificates/key.pem"), + cert: fs.readFileSync("./tools/certificates/cert.pem"), + }, + port: 4443, + } + : {}; - if ( - id.includes("node_modules/effect") || - id.includes("node_modules/@effect") - ) { - return "vendor-effect"; - } + return { + build: { + outDir: "../../dist", + rollupOptions: { + output: { + manualChunks: (id) => { + if ( + id.includes("node_modules/music-metadata") || + id.includes("node_modules/buffer") + ) { + return "vendor-music-metadata"; + } + + if ( + id.includes("node_modules/effect") || + id.includes("node_modules/@effect") + ) { + return "vendor-effect"; + } + }, }, }, }, - }, - root: "./packages/web", - worker: { - format: "es", - }, - server: { - https: { - key: fs.readFileSync("./tools/certificates/key.pem"), - cert: fs.readFileSync("./tools/certificates/cert.pem"), + root: "./packages/web", + worker: { + format: "es", }, - port: 4443, - }, + server: serverOptions, + }; });