Skip to content

BuildActionToNetlify #6777

BuildActionToNetlify

BuildActionToNetlify #6777

# GitHub Actions 上での名前
name: BuildActionToNetlify
# 起動条件
on:
workflow_dispatch: # GithubActions上で実行ボタンを表示
schedule:
- cron: '*/30 * * * *' # 30分毎に実行:https://crontab.guru/#*/30_*_*_*_*
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
cache: 'npm'
- name: Install dependencies and build
env:
NEXT_PUBLIC_BASE_URL : ${{ secrets.NEXT_PUBLIC_BASE_URL }}
NEXTAUTH_SECRET : ${{ secrets.NEXTAUTH_SECRET }}
NEXTAUTH_URL : ${{ secrets.NEXTAUTH_URL }}
NOTION_TOKEN : ${{ secrets.NOTION_TOKEN }}
NOTION_DATABASE : ${{ secrets.NOTION_DATABASE }}
NOTION_PROFILE_PAGE_ID : ${{ secrets.NOTION_PROFILE_PAGE_ID }}
NOTION_PREVIEW_PAGE_ID : ${{ secrets.NOTION_PREVIEW_PAGE_ID }}
NEXT_PUBLIC_ALGOLIA_APPLICATION_ID : ${{ secrets.NEXT_PUBLIC_ALGOLIA_APPLICATION_ID }}
NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_API_KEY: ${{ secrets.NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_API_KEY }}
ALGOLIA_APPLICATION_ID : ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_ADMIN_API_KEY : ${{ secrets.ALGOLIA_ADMIN_API_KEY }}
NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID : ${{ secrets.NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID }}
GOOGLE_CLIENT_ID : ${{ secrets.GOOGLE_CLIENT_ID }}
GOOGLE_CLIENT_SECRET : ${{ secrets.GOOGLE_CLIENT_SECRET }}
NEXT_PUBLIC_GTM_ID : ${{ secrets.NEXT_PUBLIC_GTM_ID }}
run: |
echo "::group::Install dependencies"
npm ci
echo "::endgroup::"
echo "::group::Build project"
npm run build
echo "::endgroup::"
- name: Install Netlify CLI
run: npm install -g netlify-cli
- name: Deploy to Netlify
run: |
echo "::group::Deploy to Netlify"
for i in {1..3}; do
netlify deploy --build --prod > cli.txt && break || sleep 60
done
# Extract URLs from cli.txt
URLS=$(sed -n '/Build logs:/,$p' cli.txt)
# Extract the rest of the log
LOG=$(sed '/Build logs:/Q' cli.txt)
echo "<details><summary>Netlify Build Log</summary>"
echo "```"
echo "$LOG"
echo "```"
echo "</details>"
echo "$URLS"
echo "::endgroup::"
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}