Skip to content

Merge pull request #6 from Aivis-Project/dependabot/npm_and_yarn/cros… #21

Merge pull request #6 from Aivis-Project/dependabot/npm_and_yarn/cros…

Merge pull request #6 from Aivis-Project/dependabot/npm_and_yarn/cros… #21

Workflow file for this run

name: Test
on:
push:
pull_request:
branches:
- "**"
workflow_dispatch:
env:
AIVISSPEECH_ENGINE_REPO: "Aivis-Project/AivisSpeech-Engine"
AIVISSPEECH_ENGINE_VERSION: "1.1.0-dev"
defaults:
run:
shell: bash
jobs:
config: # 全 jobs で利用する定数の定義. `env` が利用できないコンテキストでも利用できる.
runs-on: ubuntu-latest
outputs:
shouldUpdateSnapshots: ${{ steps.check-whether-to-update-snapshots.outputs.shouldUpdateSnapshots }}
steps:
- name: Check if commit message includes [update snapshots]
id: check-whether-to-update-snapshots
uses: actions/github-script@v7
with:
script: |
const commits = ${{ toJson(github.event.commits) }};
if (!commits) {
// pull_request などでコミットがない場合はスキップ
core.setOutput("shouldUpdateSnapshots", false);
process.exit(0);
}
const shouldUpdateSnapshots = commits.some((commit) =>
commit.message.toLowerCase().includes("[update snapshots]")
);
core.setOutput("shouldUpdateSnapshots", shouldUpdateSnapshots);
console.log(`shouldUpdateSnapshots: ${shouldUpdateSnapshots}`);
# ビルドのテスト
build-test:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup-environment
- run: npm run electron:build
# # unit テスト
# unit-test:
# runs-on: windows-2022
# steps:
# - uses: actions/checkout@v4
# - name: Setup environment
# uses: ./.github/actions/setup-environment
# - name: Run test
# run: |
# npm run test:unit
# # e2e テスト
# e2e-test:
# runs-on: ${{ matrix.os }}
# needs: [config]
# strategy:
# fail-fast: false
# matrix:
# os:
# - windows-2022
# - macos-13
# - macos-14
# # - ubuntu-20.04
# include:
# - os: windows-2022
# aivisspeech_engine_asset_name: windows-x64
# - os: macos-13
# aivisspeech_engine_asset_name: macos-x64
# - os: macos-14
# aivisspeech_engine_asset_name: macos-arm64
# # - os: ubuntu-20.04
# # aivisspeech_engine_asset_name: linux-x64
# steps:
# - uses: actions/checkout@v4
# - name: Setup environment
# uses: ./.github/actions/setup-environment
# - name: Install xvfb and x11-xserver-utils
# if: startsWith(matrix.os, 'ubuntu')
# run: |
# sudo apt-get update
# sudo apt-get install -y xvfb x11-xserver-utils # for electron
# sudo apt-get install -y libsndfile1 # for engine
# - name: Download AivisSpeech Engine
# id: download-engine
# uses: ./.github/actions/download-engine
# with:
# repo: ${{ env.AIVISSPEECH_ENGINE_REPO }}
# version: ${{ env.AIVISSPEECH_ENGINE_VERSION }}
# dest: ${{ github.workspace }}/AivisSpeech-Engine
# target: ${{ matrix.aivisspeech_engine_asset_name }}
# token: ${{ secrets.ENGINE_DOWNLOADER_TOKEN }}
# - name: Setup
# run: |
# # run.exe
# chmod +x ${{ steps.download-engine.outputs.run_path }}
# # .env
# sed -i -e 's|"074fc39e-678b-4c13-8916-ffca8d505d1d"|"208cf94d-43d2-4cf5-abc0-9783cac36d29"|' .env.test
# sed -i -e 's|"../AivisSpeech-Engine/run.exe"|"${{ steps.download-engine.outputs.run_path }}"|' .env.test
# cp .env.test .env
# - name: Run npm run test:browser-e2e
# run: |
# if [ -n "${{ runner.debug }}" ]; then
# export DEBUG="pw:browser*"
# fi
# ARGS=""
# if [[ ${{ needs.config.outputs.shouldUpdateSnapshots }} == 'true' ]]; then
# ARGS="--update-snapshots"
# fi
# npm run test:browser-e2e -- $ARGS
# - name: Run npm run test:electron-e2e
# run: |
# if [ -n "${{ runner.debug }}" ]; then
# export DEBUG="pw:browser*"
# fi
# if [[ ${{ matrix.os }} == ubuntu-* ]]; then
# xvfb-run --auto-servernum npm run test:electron-e2e
# else
# npm run test:electron-e2e
# fi
# - name: Run npm run test:storybook-vrt
# run: |
# if [ -n "${{ runner.debug }}" ]; then
# export DEBUG="pw:browser*"
# fi
# ARGS=""
# if [[ ${{ needs.config.outputs.shouldUpdateSnapshots }} == 'true' ]]; then
# ARGS="--update-snapshots"
# fi
# npm run test:storybook-vrt -- $ARGS
# - name: Upload playwright report to artifact
# if: failure()
# uses: actions/upload-artifact@v4
# with:
# name: playwright-report-${{ matrix.os }}
# path: playwright-report
# - name: Collect patch for snapshots
# if: needs.config.outputs.shouldUpdateSnapshots == 'true'
# run: |
# git add --intent-to-add tests/ # git diff に表示されるようにする
# git diff tests/ # ロギング用
# git diff --binary tests/ > patch-${{ matrix.os }}.diff
# - name: Upload patch to artifact
# if: needs.config.outputs.shouldUpdateSnapshots == 'true'
# uses: actions/upload-artifact@v4
# with:
# name: updated-snapshots-${{ matrix.os }}
# path: patch-${{ matrix.os }}.diff
# commit-snapshots:
# runs-on: ubuntu-latest
# permissions:
# contents: write
# needs: [config, e2e-test]
# if: needs.config.outputs.shouldUpdateSnapshots == 'true'
# steps:
# - uses: actions/checkout@v4
# with:
# # NOTE: デフォルトの設定だとgithub-push-actionが動いてくれないので設定を変えている。
# # ref: https://github.com/ad-m/github-push-action/issues/44#issuecomment-581706892
# persist-credentials: false
# fetch-depth: 0
# - name: Download artifacts
# uses: actions/download-artifact@v4
# with:
# pattern: updated-snapshots-*
# path: patches
# merge-multiple: true
# - name: Commit updated snapshots
# id: commit-updated-snapshots
# run: |
# # パッチを適用
# for patch in patches/*.diff; do
# git apply --allow-empty $patch
# rm $patch
# done
# # 変更があるかチェック
# if [ -n "$(git status --porcelain)" ]; then
# git config --global user.name "github-actions[bot]"
# git config --global user.email "github-actions[bot]@users.noreply.github.com"
# git add tests/
# git commit -m "(スナップショットを更新)"
# echo "changes_exist=true" >> $GITHUB_OUTPUT
# else
# echo "No changes to commit"
# echo "changes_exist=false" >> $GITHUB_OUTPUT
# fi
# - name: Push changes
# if: steps.commit-updated-snapshots.outputs.changes_exist == 'true'
# uses: ad-m/github-push-action@77c5b412c50b723d2a4fbc6d71fb5723bcd439aa
# with:
# github_token: ${{ secrets.PUSH_TOKEN || secrets.GITHUB_TOKEN }}
# branch: ${{ github.ref }}
# - name: Show warning if token is not set
# if: steps.commit-updated-snapshots.outputs.changes_exist == 'true'
# uses: actions/github-script@v7
# with:
# script: |
# const pushTokenProvided = `${{ secrets.PUSH_TOKEN }}` !== "";
# if (!pushTokenProvided) {
# core.warning(
# "スクリーンショットを更新したので、空コミットをプッシュしてテストを再実行してください。\n" +
# "PUSH_TOKENをSecretsに追加すると次からこの操作を省けます。\n" +
# "Secretsの設定方法はREADME.mdを参照してください。"
# );
# }
# console.log(`pushTokenProvided: ${pushTokenProvided}`);
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup-environment
- name: Disallowed licenses check
run: npm run license:generate
- run: npm run typecheck
- run: npm run lint
# - run: npm run markdownlint
- run: npm run typos