diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml deleted file mode 100644 index 435c5c80..00000000 --- a/.github/workflows/deploy-pages.yml +++ /dev/null @@ -1,79 +0,0 @@ -# Sample workflow for building and deploying a Next.js site to GitHub Pages -# -# To get started with Next.js see: https://nextjs.org/docs/getting-started -# -name: Deploy Next.js site to Pages - -on: - push: - branches: ["main"] - paths: - - frontend/** - - json/** - - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - defaults: - run: - working-directory: frontend # Set default working directory for all run steps - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Detect package manager - id: detect-package-manager - run: | - if [ -f "${{ github.workspace }}/frontend/yarn.lock" ]; then - echo "manager=yarn" >> $GITHUB_OUTPUT - echo "command=install" >> $GITHUB_OUTPUT - echo "runner=yarn" >> $GITHUB_OUTPUT - exit 0 - elif [ -f "${{ github.workspace }}/frontend/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: frontend/package-lock.json # Specify the path to package-lock.json - - name: Setup Pages - uses: actions/configure-pages@v5 - with: - static_site_generator: next - - name: Install dependencies - run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} --legacy-peer-deps - - name: Build with Next.js - run: ${{ steps.detect-package-manager.outputs.runner }} next build - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: frontend/out - - 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 diff --git a/.github/workflows/frontend-cicd.yml b/.github/workflows/frontend-cicd.yml new file mode 100644 index 00000000..dd242f6e --- /dev/null +++ b/.github/workflows/frontend-cicd.yml @@ -0,0 +1,78 @@ +# Based on https://github.com/actions/starter-workflows/blob/main/pages/nextjs.yml + +name: Frontend CI/CD + +on: + push: + branches: ["main"] + paths: + - frontend/** + - json/** + + pull_request: + branches: ["main"] + types: [opened, synchronize, reopened, edited] + paths: + - frontend/** + - json/** + + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: pages-${{ github.ref }} + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + defaults: + run: + working-directory: frontend # Set default working directory for all run steps + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: npm + cache-dependency-path: frontend/package-lock.json + + - name: Install dependencies + run: npm ci --prefer-offline --legacy-peer-deps + + - name: Run tests + run: npm run test + + - name: Configure Next.js for pages + uses: actions/configure-pages@v5 + with: + static_site_generator: next + + - name: Build with Next.js + run: npm run build + + - name: Upload artifact + if: github.ref == 'refs/heads/main' + uses: actions/upload-pages-artifact@v3 + with: + path: frontend/out + + deploy: + runs-on: ubuntu-latest + needs: build + if: github.ref == 'refs/heads/main' + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/json/onedev.json b/json/onedev.json index f122680b..3fafa03c 100644 --- a/json/onedev.json +++ b/json/onedev.json @@ -16,7 +16,7 @@ "install_methods": [ { "type": "default", - "script": "/ct/onedev.sh", + "script": "ct/onedev.sh", "resources": { "cpu": 2, "ram": 2048,