Skip to content

style: update style #25

style: update style

style: update style #25

name: frontend
on:
push:
paths:
- 'apps/frontend/**'
branches:
- '**'
pull_request:
paths:
- 'apps/frontend/**'
branches:
- '**'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Pnpm
uses: pnpm/action-setup@v4
with:
version: 10.12.1
- name: Install dependencies
run: pnpm install
- name: Create .env file
run: |
mkdir -p ./apps/frontend
echo "NEXT_PUBLIC_API_URL=${{ vars.NEXT_PUBLIC_API_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_DOMAIN_URL=${{ vars.NEXT_PUBLIC_DOMAIN_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_STATIC_FILE_URL=${{ vars.NEXT_PUBLIC_STATIC_FILE_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_GA_KEY=${{ vars.NEXT_PUBLIC_GA_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_SENTRY_DSN=${{ vars.NEXT_PUBLIC_SENTRY_DSN }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_DISCUSSION_KEY=${{ vars.NEXT_PUBLIC_DISCUSSION_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_APP_ID=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_APP_ID }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_INDEX_NAME=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_INDEX_NAME }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_SENTRY_AUTH_TOKEN=${{ vars.NEXT_PUBLIC_SENTRY_AUTH_TOKEN }}" >> ./apps/frontend/.env
- name: Compilation
run: pnpm run build --filter frontend
# テスト成功時はこちらのステップが実行される
- name: Slack Notification on Success at Testing Stage
if: success()
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOKS }}
SLACK_CHANNEL: github-actions
SLACK_TITLE: Test Success
SLACK_COLOR: good
SLACK_FOOTER: 'Powered by Yancey Inc. and its affiliates.'
# テスト失敗時はこちらのステップが実行される
- name: Slack Notification on Failure at Testing Stage
uses: rtCamp/action-slack-notify@v2
if: failure()
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOKS }}
SLACK_CHANNEL: github-actions
SLACK_TITLE: Test Failure
SLACK_COLOR: danger
SLACK_FOOTER: 'Powered by Yancey Inc. and its affiliates.'
deployment:
runs-on: ubuntu-latest
continue-on-error: true
needs: test
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Pnpm
uses: pnpm/action-setup@v4
with:
version: 10.12.1
- name: Install dependencies
run: pnpm install
- name: Create .env file
run: |
mkdir -p ./apps/frontend
echo "NEXT_PUBLIC_API_URL=${{ vars.NEXT_PUBLIC_API_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_DOMAIN_URL=${{ vars.NEXT_PUBLIC_DOMAIN_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_STATIC_FILE_URL=${{ vars.NEXT_PUBLIC_STATIC_FILE_URL }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_GA_KEY=${{ vars.NEXT_PUBLIC_GA_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_SENTRY_DSN=${{ vars.NEXT_PUBLIC_SENTRY_DSN }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_DISCUSSION_KEY=${{ vars.NEXT_PUBLIC_DISCUSSION_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_APP_ID=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_APP_ID }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_ALGOLIA_SEARCH_INDEX_NAME=${{ vars.NEXT_PUBLIC_ALGOLIA_SEARCH_INDEX_NAME }}" >> ./apps/frontend/.env
echo "NEXT_PUBLIC_SENTRY_AUTH_TOKEN=${{ vars.NEXT_PUBLIC_SENTRY_AUTH_TOKEN }}" >> ./apps/frontend/.env
- name: Compilation
run: pnpm run build --filter frontend
- name: Prepare files for deployment
run: |
mkdir -p .next
cp -r apps/frontend/.next/* .next/
- name: Copy file via ssh key
uses: appleboy/scp-action@v1
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.SSH_KEY }}
source: '.next/*'
target: '/srv/beg-monorepo/apps/frontend'
overwrite: true
- name: SSH to Server and Run Command
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.SSH_KEY }}
script: |
cd /srv/beg-monorepo/apps/frontend
/home/${{ secrets.USERNAME }}/.local/share/pnpm/pm2 reload ecosystem.config.js
# テスト成功時はこちらのステップが実行される
- name: Slack Notification on Success at Deployment Stage
if: success()
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOKS }}
SLACK_CHANNEL: github-actions
SLACK_TITLE: Deploy Success
SLACK_COLOR: good
SLACK_FOOTER: 'Powered by Yancey Inc. and its affiliates.'
# テスト失敗時はこちらのステップが実行される
- name: Slack Notification on Failure at Deployment Stage
uses: rtCamp/action-slack-notify@v2
if: failure()
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOKS }}
SLACK_CHANNEL: github-actions
SLACK_TITLE: Deploy Failure
SLACK_COLOR: danger
SLACK_FOOTER: 'Powered by Yancey Inc. and its affiliates.'