-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate ICU4X artifacts on tagging (#825)
* Generate ICU4X artifacts on tagging * Add newline * Switch to unicode * Set to main branch * Set to hash * Fixes * update * test * new datagen * targets * ... * features * . * win * exe * d * d * rustup * d * -ci * use submodule * pr * c * path * Update intl4x_artifacts.yml --------- Co-authored-by: Robert Bastian <[email protected]> Co-authored-by: Robert Bastian <[email protected]>
- Loading branch information
1 parent
fb36925
commit da7fe86
Showing
2 changed files
with
159 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
name: Generate artifacts for intl4x | ||
|
||
permissions: | ||
contents: write | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'intl4x-v.*' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
dart-libs: | ||
name: "Build Dart binaries" | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ ubuntu-latest, macos-latest, windows-latest ] | ||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 | ||
with: | ||
submodules: 'true' | ||
|
||
- name: Install Rust toolchains | ||
run: | | ||
rustup toolchain install stable | ||
- name: Show the selected Rust toolchain | ||
run: rustup show | ||
|
||
- uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d | ||
with: | ||
sdk: dev | ||
|
||
- name: Setup additional linkers | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
sudo apt-get install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-riscv64-linux-gnu gcc-i686-linux-gnu | ||
mkdir .cargo | ||
echo "[target]" >> .cargo/config.toml | ||
echo "aarch64-linux-android.linker=\"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang\"" >> .cargo/config.toml | ||
echo "armv7-linux-androideabi.linker=\"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang\"" >> .cargo/config.toml | ||
echo "i686-linux-android.linker=\"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android30-clang\"" >> .cargo/config.toml | ||
echo "x86_64-linux-android.linker=\"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android30-clang\"" >> .cargo/config.toml | ||
echo "riscv64-linux-android.linker=\"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/riscv64-linux-android35-clang\"" >> .cargo/config.toml | ||
echo "aarch64-unknown-linux-gnu.linker=\"aarch64-linux-gnu-gcc\"" >> .cargo/config.toml | ||
echo "armv7-unknown-linux-gnueabihf.linker=\"arm-linux-gnueabihf-gcc\"" >> .cargo/config.toml | ||
echo "riscv64gc-unknown-linux-gnu.linker=\"riscv64-linux-gnu-gcc\"" >> .cargo/config.toml | ||
- name: Build Linux | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
cd submodules/icu4x | ||
mkdir bin | ||
cd ffi/dart | ||
dart pub get | ||
cd ../.. | ||
dart run ffi/dart/tool/build_libs.dart bin/android_arm android_arm | ||
dart run ffi/dart/tool/build_libs.dart bin/android_arm64 android_arm64 | ||
dart run ffi/dart/tool/build_libs.dart bin/android_ia32 android_ia32 | ||
dart run ffi/dart/tool/build_libs.dart bin/android_x64 android_x64 | ||
dart run ffi/dart/tool/build_libs.dart bin/linux_arm linux_arm | ||
dart run ffi/dart/tool/build_libs.dart bin/linux_arm64 linux_arm64 | ||
dart run ffi/dart/tool/build_libs.dart bin/linux_riscv64 linux_riscv64 | ||
dart run ffi/dart/tool/build_libs.dart bin/linux_x64 linux_x64 | ||
cargo run -p icu_datagen -- --locales full --keys all --format blob --out bin/full.postcard | ||
cd provider/datagen # avoid global feature resolution | ||
rustup target add aarch64-unknown-linux-gnu | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target aarch64-unknown-linux-gnu | ||
rustup target add riscv64gc-unknown-linux-gnu | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target riscv64gc-unknown-linux-gnu | ||
rustup target add x86_64-unknown-linux-gnu | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target x86_64-unknown-linux-gnu | ||
cd ../.. | ||
cp target/aarch64-unknown-linux-gnu/release/icu4x-datagen bin/linux_arm64-datagen | ||
cp target/riscv64gc-unknown-linux-gnu/release/icu4x-datagen bin/linux_riscv64-datagen | ||
cp target/x86_64-unknown-linux-gnu/release/icu4x-datagen bin/linux_x64-datagen | ||
- name: Build Mac | ||
if: matrix.os == 'macos-latest' | ||
run: | | ||
cd submodules/icu4x | ||
mkdir bin | ||
cd ffi/dart | ||
dart pub get | ||
cd ../.. | ||
dart run ffi/dart/tool/build_libs.dart bin/ios_arm ios_arm | ||
dart run ffi/dart/tool/build_libs.dart bin/ios_arm64 ios_arm64 | ||
dart run ffi/dart/tool/build_libs.dart bin/ios_x64 ios_x64 | ||
dart run ffi/dart/tool/build_libs.dart bin/macos_arm64 macos_arm64 | ||
dart run ffi/dart/tool/build_libs.dart bin/macos_x64 macos_x64 | ||
cd provider/datagen # avoid global feature resolution | ||
rustup target add aarch64-apple-darwin | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target aarch64-apple-darwin | ||
rustup target add x86_64-apple-darwin | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target x86_64-apple-darwin | ||
cd ../.. | ||
cp target/aarch64-apple-darwin/release/icu4x-datagen bin/macos_arm64-datagen | ||
cp target/x86_64-apple-darwin/release/icu4x-datagen bin/macos_x64-datagen | ||
- name: Build Windows | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
cd submodules/icu4x | ||
mkdir bin | ||
cd ffi/dart | ||
dart pub get | ||
cd ../.. | ||
dart run ffi/dart/tool/build_libs.dart bin/windows_arm64 windows_arm64 | ||
dart run ffi/dart/tool/build_libs.dart bin/windows_ia32 windows_ia32 | ||
dart run ffi/dart/tool/build_libs.dart bin/windows_x64 windows_x64 | ||
cd provider/datagen # avoid global feature resolution | ||
rustup target add aarch64-pc-windows-msvc | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target aarch64-pc-windows-msvc | ||
rustup target add x86_64-pc-windows-msvc | ||
cargo build --release --bin icu4x-datagen --no-default-features --features bin,blob_exporter,blob_input,rayon,experimental_components --target x86_64-pc-windows-msvc | ||
cd ../.. | ||
cp target/aarch64-pc-windows-msvc/release/icu4x-datagen.exe bin/windows_arm64-datagen.exe | ||
cp target/x86_64-pc-windows-msvc/release/icu4x-datagen.exe bin/windows_x64-datagen.exe | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@ef09cdac3e2d3e60d8ccadda691f4f1cec5035cb | ||
with: | ||
name: dart-${{matrix.os}}-libs | ||
path: submodules/icu4x/bin | ||
|
||
release: | ||
needs: dart-libs | ||
runs-on: ubuntu-latest | ||
if: github.event_name == 'push' | ||
steps: | ||
- name: Download binaries | ||
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 | ||
|
||
- name: Display structure of downloaded files | ||
run: ls -R | ||
|
||
- name: Release | ||
uses: softprops/action-gh-release@d99959edae48b5ffffd7b00da66dcdb0a33a52ee | ||
with: | ||
files: '**' | ||
fail_on_unmatched_files: true | ||
body: "Build artifacts for `package:intl4x`, based on ICU4X at ref ${{ env.icu_version }}" |