Skip to content

[CORE-233] Fix option flickers while adding #111

[CORE-233] Fix option flickers while adding

[CORE-233] Fix option flickers while adding #111

Workflow file for this run

name: Snapshot
on:
pull_request:
branches:
- main
jobs:
Lint:
name: Lint with ESLint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run ESLint
run: pnpm eslint .
Format:
name: Check formatting with Prettier
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run Prettier
run: pnpm prettier . --check
Build:
name: Build Vite production
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build Vite production
run: pnpm run build
Push-Image:
name: Build Docker image
runs-on: ubuntu-latest
needs: [Lint, Format, Build]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
- name: Build and Push Docker image
uses: docker/build-push-action@v6
with:
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
tags: |
nycusdc/core-system-frontend:pr-${{ github.event.number }}
nycusdc/core-system-frontend:${{ github.sha }}
context: .
Deploy:
needs: Push-Image
runs-on: ubuntu-latest
steps:
- name: Extract PR body for webhook
uses: NYCU-SDC/Extract-PRbody@V1.0
id: extract
with:
pr_body: ${{ github.event.pull_request.body }}
- name: Process PR body for webhook
run: |
PR_TYPE=$(echo '${{ steps.extract.outputs.type_block }}' | jq -R -s @json)
PR_PURPOSE=$(echo '${{ steps.extract.outputs.purpose_block }}' | jq -R -s @json)
echo "PR_TYPE=$PR_TYPE" >> $GITHUB_ENV
echo "PR_PURPOSE=$PR_PURPOSE" >> $GITHUB_ENV
- name: Trigger n8n Snapshot Webhook
run: |
curl --location --fail-with-body -X POST https://webhook.sdc.nycu.club/webhook/deploy \
-H "Content-Type: application/json" \
-H "x-deploy-token: ${{ secrets.N8N_DEPLOY_TOKEN }}" \
-d '{
"source": {
"title": "Core System",
"repo": "${{ github.repository }}",
"branch": "${{ github.head_ref || github.ref_name }}",
"commit": "${{ github.sha }}",
"pr_number": "${{ github.event.pull_request.number }}",
"pr_title": "${{ github.event.pull_request.title }}",
"pr_type": ${{ env.PR_TYPE }},
"pr_purpose": ${{ env.PR_PURPOSE }}
},
"method": "deploy",
"metadata": {
"environment": "snapshot",
"component": "frontend"
},
"post": {
"notify_discord": {
"enable": true,
"channel": "core-system-activity"
},
"setup_domain": {
"enable": true,
"title": "Endpoint",
"name": "pr-${{ github.event.pull_request.number }}.core-system.sdc.nycu.club",
"value": "default-eng-deploy:internal"
}
}
}'