body method
Defines the actual body code. path
is passed relative to lib
, baseName
is the filename, and className
is the filename converted to Pascal case.
実際の本体コードを定義します。path
にlib
からの相対パス、baseName
にファイル名が渡され、className
にファイル名をパスカルケースに変換した値が渡されます。
Implementation
@override
String body(String path, String baseName, String className) {
final workingPath = workingDirectory?.difference(Directory.current);
return """
# Build and upload a Flutter web app.
#
# The built related files will be stored in Github storage. (storage expires in 1 day)
#
# FlutterのWebアプリをビルドしアップロードします。
#
# ビルドされた関連ファイルがGithubのストレージに保管されます。(保管期限1日)
name: WebProductionWorkflow
on:
# This workflow runs when there is a push on the publish branch.
# publish branch に push があったらこの workflow が走る。
push:
branches: [ publish ]
jobs:
# ----------------------------------------------------------------- #
# Build for Web
# ----------------------------------------------------------------- #
build_web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${workingPath.isEmpty ? "." : workingPath}
steps:
# Check-out.
# チェックアウト。
- name: Checks-out my repository
uses: actions/checkout@v2
# Install flutter.
# Flutterのインストール。
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
# Check flutter version.
# Flutterのバージョン確認。
- name: Run flutter version
run: flutter --version
# Download package.
# パッケージのダウンロード。
- name: Download flutter packages
run: flutter pub get
# Creation of the Assets folder.
# Assetsフォルダの作成。
- name: Create assets folder
run: mkdir -p assets
# Running flutter analyze.
# Flutter analyzeの実行。
- name: Analyzing flutter project
run: flutter analyze
# Running the flutter test.
# Flutter testの実行。
- name: Testing flutter project
run: flutter test
# Generate web files.
# Webファイルを生成。
- name: Building web build
run: flutter build web --build-number \$((\$GITHUB_RUN_NUMBER+$defaultIncrementNumber)) --release --dart-define=FLAVOR=prod --web-renderer $renderer
# Upload the generated files.
# 生成されたファイルのアップロード。
- name: Upload web artifacts
uses: actions/upload-artifact@v4
with:
name: web_release
path: ${workingPath.isEmpty ? "." : workingPath}/build/web
retention-days: 1
""";
}