Skip to content

chore: bump version to 1.0.14 #1409

chore: bump version to 1.0.14

chore: bump version to 1.0.14 #1409

Workflow file for this run

# ワークフローの名前:GitHubのActionsタブで表示される名前
name: Build, Notarize, and Release for macOS
# ワークフローが実行されるタイミング(トリガー)
on:
# 'v'で始まるタグ(例: v1.0.0, v1.2.3-beta)またはmainブランチがPushされた時に実行
push:
branches:
- main
- release-test
- release/*
tags:
- 'v*'
jobs:
build-and-release:
# 実行環境:最新のmacOS
runs-on: macos-14
strategy:
matrix:
node-version: [22.x]
# 実行される個々のステップ
steps:
# 1. ソースコードのチェックアウト
# ワークフローを実行する仮想環境に、リポジトリのコードをコピーしてくる
- name: Checkout code
uses: actions/checkout@v4
# 2. Node.js環境のセットアップ
# アプリのビルドに必要なNode.jsとYarnを準備する
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
# Yarnのキャッシュを有効にし、インストールを高速化
cache: 'yarn'
# Puppeteer Chromium cache restore (speeds up downloads)
- name: Restore Puppeteer cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.puppeteer-cache
key: puppeteer-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
restore-keys: |
puppeteer-${{ runner.os }}-
# 3. 依存パッケージのインストール
# package.jsonとyarn.lockを元に必要なライブラリをインストール
# PUPPETEER_SKIP_DOWNLOAD: postinstallでのダウンロードをスキップし、後のステップでインストール
- name: Install dependencies
env:
PUPPETEER_SKIP_DOWNLOAD: true
run: yarn install --frozen-lockfile
- name: Install Chromium for Puppeteer
env:
PUPPETEER_CACHE_DIR: ${{ github.workspace }}/.puppeteer-cache
run: npx puppeteer browsers install chrome
# 4. Apple証明書のインポート
# GitHub Secretsから証明書を取得し、キーチェーンにインポートする
- name: Import Apple Certificate
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
run: |
echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12
security create-keychain -p actions temp.keychain
security unlock-keychain -p actions temp.keychain
security import certificate.p12 -k temp.keychain -P $APPLE_CERTIFICATE_PASSWORD -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple: -s -k actions temp.keychain
security list-keychain -d user -s temp.keychain login.keychain
# 5. ビルド、署名、公証の実行
# forge.config.tsの設定に基づいて全ての処理を行う
- name: Publish
run: |
set -e # エラー時に即座に終了
yarn run publish:ci:mac
exit_code=$?
if [ $exit_code -ne 0 ]; then
echo "::error::Build failed with exit code $exit_code"
exit $exit_code
fi
env:
# Node.jsのメモリ上限を4GBに設定(Electron Forgeのビルドに必要)
NODE_OPTIONS: --max-old-space-size=4096
# forge.config.tsが期待する環境変数名
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
AC_APPLE_ID: ${{ secrets.APPLE_ID }}
AC_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
AC_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
CODESIGN_IDENTITY: ${{ secrets.APPLE_CODESIGN_IDENTITY }}
PUPPETEER_CACHE_DIR: ${{ github.workspace }}/.puppeteer-cache
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# 6. 生成物のアップロード(アーティファクトとして)
# ビルドが成功したかどうかを後で確認できるように、生成された全てのファイルを一時的に保存する
- name: Upload Artifact for Debugging
uses: actions/upload-artifact@v4
with:
name: macOS-release-files
# electron-makeの出力パス。実際のパスに合わせて要確認
path: out/make/