183 front task chore production ci #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Preview CI | |
| env: | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
| NEXT_PUBLIC_API_BASE_URL: ${{ secrets.NEXT_PUBLIC_API_BASE_URL }} | |
| NEXT_PUBLIC_SUPABASE_URL: ${{ secrets.SUPABASE_URL }} | |
| NEXT_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.SUPABASE_ANON_KEY }} | |
| NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }} | |
| on: | |
| pull_request: | |
| branches: | |
| - develop | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Get yarn cache directory path | |
| id: yarn-cache-dir-path | |
| run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| id: yarn-cache | |
| with: | |
| path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| - name: Install dependencies | |
| run: yarn | |
| # - name: Build | |
| # run: yarn build | |
| deploy-vercel: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| statis: ${{ job.status }} | |
| preview_url: ${{ steps.vercel_preview_url.outputs.preview_url }} | |
| currnent_time: ${{ steps.current-time.outputs.formattedTime }} | |
| needs: build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Get yarn cache directory path | |
| id: yarn-cache-dir-path | |
| run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| id: yarn-cache | |
| with: | |
| path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| - name: Install dependencies | |
| run: yarn | |
| - name: Deploy to Vercel if needed | |
| run: | | |
| npm install --global vercel@latest | |
| vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} | |
| vercel build --token=${{ secrets.VERCEL_TOKEN }} | |
| vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} | |
| - name: Get Vercel Preview | |
| uses: zentered/[email protected] | |
| id: vercel_preview_url | |
| - name: Get URL | |
| run: echo "https://${{ steps.vercel_preview_url.outputs.preview_url }}" | |
| - name: Get current time | |
| uses: josStorer/get-current-time@v2 | |
| id: current-time | |
| with: | |
| format: "YYYY년 MM월 DD일 HH시 mm분" | |
| utcOffset: "+09:00" | |
| e2e-test: | |
| runs-on: ubuntu-latest | |
| needs: [deploy-vercel] | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Install dependencies | |
| run: yarn | |
| - name: Install playwright | |
| run: yarn playwright install --with-deps | |
| - name: Run playwright tests | |
| run: start-server-and-test "yarn start" http://localhost:3000 "npx playwright test" | |
| # env: | |
| # BASE_URL: ${{ steps.vercel_preview_url.outputs.preview_url }} | |
| github-deploy-comment: | |
| runs-on: ubuntu-latest | |
| needs: [deploy-vercel] | |
| steps: | |
| - name: Comment PR | |
| uses: thollander/actions-comment-pull-request@v3 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.TOKEN }} | |
| with: | |
| comment-tag: ${{ github.event.number }} | |
| message: | | |
| 🧷 Preview: https://${{ needs.deploy-vercel.outputs.preview_url }} | |
| ⏰ Update: ${{ needs.deploy-vercel.outputs.currnent_time }} |