From 8a8559e1fef0014bce18484bb650156904d92893 Mon Sep 17 00:00:00 2001 From: DarkSky Date: Wed, 28 Dec 2022 00:45:08 +0800 Subject: [PATCH] chore: build & lint --- .github/workflows/build.yml | 17 +++--- .github/workflows/temp_test.yml | 91 ++++++++++++++++++++++++++------- 2 files changed, 81 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aca94c7984..981680c9c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,12 +70,13 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v3 with: - path: ./packages/app/out + path: ./packages/app/.next lint: name: Lint and E2E Test runs-on: ubuntu-latest environment: development + needs: build steps: - uses: actions/checkout@v2 @@ -105,15 +106,15 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NPM_GITHUB_AUTH_TOKEN }} - - name: Lint + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: artifact + path: packages/app/.next/ + + - name: Lint & E2E Test run: | pnpm lint --max-warnings=0 - - - name: Install Playwright browsers - run: PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install chromium - - - name: E2E Test - run: | PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install chromium PLAYWRIGHT_BROWSERS_PATH=0 pnpm test -- --forbid-only env: diff --git a/.github/workflows/temp_test.yml b/.github/workflows/temp_test.yml index 1c0030d408..1bc2ec89f7 100644 --- a/.github/workflows/temp_test.yml +++ b/.github/workflows/temp_test.yml @@ -16,7 +16,8 @@ concurrency: jobs: build: - name: Lint and Build + name: Build on Pull Request + if: github.ref != 'refs/heads/master' runs-on: self-hosted environment: development @@ -32,33 +33,26 @@ jobs: node-version: 18.x registry-url: https://npm.pkg.github.com scope: '@toeverything' - # cache: 'pnpm' + cache: 'pnpm' - run: node scripts/module-resolve/ci.js - # - name: Restore cache - # uses: actions/cache@v3 - # with: - # path: | - # .next/cache - # # Generate a new cache whenever packages or source files change. - # key: ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} - # # If source files changed but packages didn't, rebuild from a prior cache. - # restore-keys: | - # ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}- + - name: Restore cache + uses: actions/cache@v3 + with: + path: | + .next/cache + # Generate a new cache whenever packages or source files change. + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + # If source files changed but packages didn't, rebuild from a prior cache. + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}- - name: Install dependencies run: pnpm install --no-frozen-lockfile env: NODE_AUTH_TOKEN: ${{ secrets.NPM_GITHUB_AUTH_TOKEN }} - - name: Lint - run: | - pnpm lint --max-warnings=0 - - # - name: Test - # run: pnpm test - - name: Build run: pnpm build env: @@ -72,3 +66,62 @@ jobs: - name: Export run: pnpm export + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + path: ./packages/app/.next + + lint: + name: Lint and E2E Test + runs-on: ubuntu-latest + environment: development + needs: build + + steps: + - uses: actions/checkout@v2 + - uses: pnpm/action-setup@v2 + with: + version: 'latest' + + - name: Use Node.js + uses: actions/setup-node@v2 + with: + node-version: 18.x + cache: 'pnpm' + + - name: Restore cache + uses: actions/cache@v3 + with: + path: | + .next/cache + # Generate a new cache whenever packages or source files change. + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + # If source files changed but packages didn't, rebuild from a prior cache. + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/pnpm-lock.yaml') }}- + + - name: Install dependencies + run: pnpm install + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_GITHUB_AUTH_TOKEN }} + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: artifact + path: packages/app/.next/ + + - name: Lint & E2E Test + run: | + pnpm lint --max-warnings=0 + PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install chromium + PLAYWRIGHT_BROWSERS_PATH=0 pnpm test -- --forbid-only + env: + NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }} + NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }} + NEXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }} + NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }} + NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }} + NEXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }} + NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }}