Skip to content

Generate and upload artifacts through Github actions workflow. #19

Generate and upload artifacts through Github actions workflow.

Generate and upload artifacts through Github actions workflow. #19

# This file is generated. Do not edit directly.
name: Engine Artifacts
on:
pull_request:
env:
DEPOT_TOOLS_WIN_TOOLCHAIN: 0
FLUTTER_PREBUILT_DART_SDK: 1
R2_BUCKET: flutter-zero-engine
ENGINE_CHECKOUT_PATH: ${{ github.workspace }}/engine
jobs:
mac_ios_debug_sim:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug_sim
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug_sim-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim
retention-days: 1
mac_ios_debug_sim_arm64:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug_sim_arm64
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_arm64-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_arm64
retention-days: 1
mac_ios_debug:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug
retention-days: 1
mac_ios_profile:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_profile
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_profile-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_profile
retention-days: 1
mac_ios_release:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_release
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_release-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_release
retention-days: 1
mac_ios_debug_sim_extension_safe:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug_sim_extension_safe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_extension_safe
retention-days: 1
mac_ios_debug_sim_arm64_extension_safe:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug_sim_arm64_extension_safe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_arm64_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_arm64_extension_safe
retention-days: 1
mac_ios_debug_extension_safe:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_debug_extension_safe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_debug_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_extension_safe
retention-days: 1
mac_ios_profile_extension_safe:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_profile_extension_safe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_profile_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_profile_extension_safe
retention-days: 1
mac_ios_release_extension_safe:
runs-on: macos-latest
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Build engine
run: |
cd engine/src
./flutter/bin/et build --config ci/ios_release_extension_safe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-mac_ios_release_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_release_extension_safe
retention-days: 1
mac_ios_engine_global:
runs-on: macos-latest
needs:
- mac_ios_debug_sim
- mac_ios_debug_sim_arm64
- mac_ios_debug
- mac_ios_profile
- mac_ios_release
- mac_ios_debug_sim_extension_safe
- mac_ios_debug_sim_arm64_extension_safe
- mac_ios_debug_extension_safe
- mac_ios_profile_extension_safe
- mac_ios_release_extension_safe
defaults:
run:
shell: bash
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
path: ''
- name: Set up depot_tools
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/depot_tools
# Append depot_tools to the PATH for subsequent steps
echo "$HOME/depot_tools" >> $GITHUB_PATH
- name: Generate engine content hash
id: engine_content_hash
run: |
engine_content_hash=$(bin/internal/content_aware_hash.sh)
echo "::notice:: Engine content hash: ${engine_content_hash}"
echo "value=${engine_content_hash}" >> $GITHUB_OUTPUT
- name: Copy gclient file
run: |
cp engine/scripts/slim.gclient .gclient
- name: GClient sync
run: |
gclient sync -D --no-history --shallow --with_branch_heads
- name: Download Artifacts from mac_ios_debug_sim
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug_sim-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim
- name: Download Artifacts from mac_ios_debug_sim_arm64
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_arm64-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_arm64
- name: Download Artifacts from mac_ios_debug
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug
- name: Download Artifacts from mac_ios_profile
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_profile-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_profile
- name: Download Artifacts from mac_ios_release
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_release-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_release
- name: Download Artifacts from mac_ios_debug_sim_extension_safe
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_extension_safe
- name: Download Artifacts from mac_ios_debug_sim_arm64_extension_safe
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug_sim_arm64_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_sim_arm64_extension_safe
- name: Download Artifacts from mac_ios_debug_extension_safe
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_debug_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_debug_extension_safe
- name: Download Artifacts from mac_ios_profile_extension_safe
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_profile_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_profile_extension_safe
- name: Download Artifacts from mac_ios_release_extension_safe
uses: actions/download-artifact@v4
with:
name: artifacts-mac_ios_release_extension_safe-${{ steps.engine_content_hash.outputs.value }}
path: engine/src/out/ci/ios_release_extension_safe
- name: Run generator Debug-ios-Flutter.xcframework
run: |
cd engine/src
python3 flutter/sky/tools/create_ios_framework.py \
--dst \
out/debug \
--arm64-out-dir \
out/ci/ios_debug \
--simulator-x64-out-dir \
out/ci/ios_debug_sim \
--simulator-arm64-out-dir \
out/ci/ios_debug_sim_arm64
- name: Run generator Profile-ios-Flutter.xcframework
run: |
cd engine/src
python3 flutter/sky/tools/create_ios_framework.py \
--dst \
out/profile \
--arm64-out-dir \
out/ci/ios_profile \
--simulator-x64-out-dir \
out/ci/ios_debug_sim \
--simulator-arm64-out-dir \
out/ci/ios_debug_sim_arm64
- name: Run generator Release-ios-Flutter.xcframework
run: |
cd engine/src
python3 flutter/sky/tools/create_ios_framework.py \
--dst \
out/release \
--arm64-out-dir \
out/ci/ios_release \
--simulator-x64-out-dir \
out/ci/ios_debug_sim \
--simulator-arm64-out-dir \
out/ci/ios_debug_sim_arm64 \
--dsym \
--strip
- name: Run generator Verify-export-symbols-release-binaries
run: |
cd engine/src
../../bin/dart flutter/testing/symbols/verify_exported.dart \
src/out/ci \
src/flutter/buildtools
- name: Publish ios/artifacts.zip
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
r2-bucket: ${{ env.R2_BUCKET }}
source-dir: engine/src/out/debug/artifacts.zip
destination-dir: ${{ steps.engine_content_hash.outputs.value }}/ios
- name: Publish ios-profile/artifacts.zip
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
r2-bucket: ${{ env.R2_BUCKET }}
source-dir: engine/src/out/profile/artifacts.zip
destination-dir: ${{ steps.engine_content_hash.outputs.value }}/ios-profile
- name: Publish ios-release/artifacts.zip
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
r2-bucket: ${{ env.R2_BUCKET }}
source-dir: engine/src/out/release/artifacts.zip
destination-dir: ${{ steps.engine_content_hash.outputs.value }}/ios-release