187 front task chore playwright ci #25
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: | |
| project-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Set yarn version | |
| id: set-version | |
| run: | | |
| yarn set version 4.1.1 | |
| echo "YARN_VERSION=$(yarn -v)" >> $GITHUB_OUTPUT | |
| - name: Yarn cache - PnP | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .yarn/cache | |
| .pnp.* | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ steps.set-version.outputs.YARN_VERSION }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}- | |
| - name: Install dependencies | |
| run: yarn | |
| - name: Run build | |
| run: yarn build | |
| - name: Run unit test | |
| run: yarn test | |
| # - name: Run e2e test install | |
| # run: yarn playwright install --with-deps | |
| # - name: Run e2e test | |
| # run: yarn playwright test | |
| deploy-to-vercel: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| statis: ${{ job.status }} | |
| preview_url: ${{ steps.deploy-vercel.outputs.preview_url }} | |
| currnent_time: ${{ steps.current-time.outputs.formattedTime }} | |
| needs: project-build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Set yarn version | |
| id: set-version | |
| run: | | |
| yarn set version 4.1.1 | |
| echo "YARN_VERSION=$(yarn -v)" >> $GITHUB_OUTPUT | |
| - name: Yarn cache - PnP | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .yarn/cache | |
| .pnp.* | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ steps.set-version.outputs.YARN_VERSION }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}- | |
| - name: Install dependencies | |
| run: yarn | |
| - name: Deploy to Vercel | |
| id: deploy-vercel | |
| 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 }} > vercel-output.txt | |
| echo "preview_url=$(cat vercel-output.txt)" >> $GITHUB_OUTPUT | |
| - 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-to-vercel] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: "yarn" | |
| - name: Set yarn version | |
| id: set-version | |
| run: | | |
| yarn set version 4.1.1 | |
| echo "YARN_VERSION=$(yarn -v)" >> $GITHUB_OUTPUT | |
| - name: Yarn cache - PnP | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .yarn/cache | |
| .pnp.* | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ steps.set-version.outputs.YARN_VERSION }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}- | |
| - name: Install dependencies | |
| run: yarn | |
| # - name: Waiting for 200 from the Vercel Preview | |
| # uses: patrickedqvist/[email protected] | |
| # id: waitFor200 | |
| # with: | |
| # token: ${{ secrets.GITHUB_TOKEN }} | |
| # max_timeout: 300 | |
| # check_interval: 10 | |
| # - name: Make environment file | |
| # run: | | |
| # echo "Deployed to: ${{ steps.waitFor200.outputs.url }}" | |
| # touch .env | |
| # echo "${{ secrets.ENV_FILE }}" > .env | |
| # echo TEST_BASE_URL=${{ steps.waitFor200.outputs.url }} >> .env | |
| # - name: Install dependencies | |
| # run: npm ci | |
| - name: Install Playwright Browsers | |
| run: yarn playwright install --with-deps | |
| - name: Run Playwright tests | |
| run: yarn playwright test | |
| env: | |
| PLAYWRIGHT_TEST_BASE_URL: ${{ steps.deploy-to-vercel.outputs.preview_url }} | |
| github-privew-comment: | |
| runs-on: ubuntu-latest | |
| needs: [deploy-to-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: ${{ needs.deploy-to-vercel.outputs.preview_url }} | |
| ⏰ Update: ${{ needs.deploy-to-vercel.outputs.currnent_time }} |