Skip to content

chore(deps): lock file maintenance (#125) #919

chore(deps): lock file maintenance (#125)

chore(deps): lock file maintenance (#125) #919

Workflow file for this run

name: Build & Deploy (Vercel)
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
concurrency:
group: 'workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}'
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
release:
types: [created]
push:
branches: [main]
pull_request:
branches: [main]
jobs:
setup-stage:
timeout-minutes: 1
outputs:
env-name: ${{ steps.env-name.outputs.env }}
runs-on: ubuntu-latest
steps:
- name: Setup environment name
id: env-name
run: |
if [[ ${GITHUB_HEAD_REF} == dev/* || ${GITHUB_HEAD_REF} == renovate/* ]]; then
echo "env=staging" >> $GITHUB_OUTPUT
elif [[ "${{github.event_name}}" == "release" && "${{github.event.action}}" == "created" ]]; then
echo "env=production" >> $GITHUB_OUTPUT
else
echo "env=develop" >> $GITHUB_OUTPUT
fi
lint:
timeout-minutes: 5
name: Lint ✅
needs: [setup-stage]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Check Environment
run: |
echo "Environment: ${{ needs.setup-stage.outputs.env-name }}"
- name: Setup
uses: ./.github/actions/setup-node
- name: Lint App
shell: bash
run: |
pnpm i
pnpm nuxi prepare
pnpm run lint
test:
timeout-minutes: 8
name: Test 🧪
needs: [setup-stage]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Check Environment
run: |
echo "Environment: ${{ needs.setup-stage.outputs.env-name }}"
- name: Setup
uses: ./.github/actions/setup-node
- name: Test App
shell: bash
run: |
pnpm i
pnpm nuxi prepare
pnpm run test
build-deploy:
timeout-minutes: 10
name: Build 🏗️ & Deploy 🚀
needs: [setup-stage, lint, test]
runs-on: ubuntu-latest
outputs:
url: ${{ steps.deploy.outputs.url }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Check Environment
run: |
echo "Environment: ${{ needs.setup-stage.outputs.env-name }}"
- name: Setup
uses: ./.github/actions/setup-node
- name: Install Vercel CLI
run: pnpm install --global vercel@latest
- name: Install Deps
run: pnpm install
- name: Build
run: pnpm build
# - name: Pull Vercel Environment Information (Stage)
# run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
# if: contains(fromJson('["staging"]'), needs.setup-stage.outputs.env-name)
# - name: Build Project Artifacts (Stage)
# run: |
# export NITRO_PRESET="vercel"
# export NODE_ENV="production"
# pnpm run build
# vercel build --debug --token=${{ secrets.VERCEL_TOKEN }}
# if: contains(fromJson('["staging"]'), needs.setup-stage.outputs.env-name)
# - name: Pull Vercel Environment Information (Prod)
# run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
# if: contains(fromJson('["production"]'), needs.setup-stage.outputs.env-name)
# - name: Build Project Artifacts (Prod)
# run: |
# export NITRO_PRESET="vercel"
# export NODE_ENV="production"
# pnpm run build
# vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
# if: contains(fromJson('["production"]'), needs.setup-stage.outputs.env-name)
# - name: Deploy Project Artifacts to Vercel
# id: deploy
# run: |
# if [[ "${{ needs.setup-stage.outputs.env-name }}" == "production" ]]; then
# echo "url=$(vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }})" >> "$GITHUB_OUTPUT"
# else
# echo "url=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }})" >> "$GITHUB_OUTPUT"
# fi
# preview:
# timeout-minutes: 1
# name: Preview 🔎
# needs: [setup-stage, lint, test, build-deploy]
# runs-on: ubuntu-latest
# environment:
# name: ${{ needs.setup-stage.outputs.env-name }}
# url: ${{ needs.build-deploy.outputs.url }}
# steps:
# - run: |
# echo "Env: ${{ needs.setup-stage.outputs.env-name }}"
# echo "Url: ${{ needs.build-deploy.outputs.url }}"