ci: bootstrap Linux release toolchains

This commit is contained in:
Yun Chan 2026-08-29 19:19:19 +09:00
parent 30d51278c9
commit 6a9608c447
5 changed files with 192 additions and 11 deletions

View file

@ -63,7 +63,12 @@ test-unit:
api-server-tests:
stage: test
image: mcr.microsoft.com/dotnet/sdk:10.0.302-noble
before_script: []
before_script:
- . scripts/ci/bootstrap-linux-toolchain.sh dotnet
cache:
key: linux-dotnet-sdk-10.0.302
paths:
- .ci-tools/dotnet-sdk-10.0.302/
script:
- dotnet restore apps/api-server.Tests/D3ROVoice.Api.Tests.csproj
- dotnet test apps/api-server.Tests/D3ROVoice.Api.Tests.csproj --configuration Release --no-restore -p:StaticWebAssetsEnabled=false
@ -75,7 +80,12 @@ api-server-tests:
edge-functions-quality:
stage: test
image: denoland/deno:2.8.1
before_script: []
before_script:
- . scripts/ci/bootstrap-linux-toolchain.sh deno
cache:
key: linux-deno-2.8.1
paths:
- .ci-tools/deno-2.8.1/
script:
- for entrypoint in server/supabase/functions/*/index.ts; do deno check --config server/supabase/functions/deno.json "$entrypoint"; done
- deno test --config server/supabase/functions/deno.json --allow-read --allow-env server/supabase/functions
@ -104,8 +114,7 @@ mobile-android:
needs:
- mobile-quality
before_script:
- export ANDROID_HOME=/opt/android
- export ANDROID_SDK_ROOT=/opt/android
- . scripts/ci/bootstrap-linux-toolchain.sh android
- curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" -o /tmp/node.tar.xz
- echo '14b342e71204f811bde6153be8e04b62aef63c236fef92b55f9c83154b409647 /tmp/node.tar.xz' | sha256sum -c -
- mkdir -p /tmp/node24
@ -114,9 +123,13 @@ mobile-android:
- node --version | grep -Fx "v${NODE_VERSION}"
- export D3RO_VERSION_NAME="0.0.0-e2e.${CI_PIPELINE_IID}"
- export D3RO_VERSION_CODE="${CI_PIPELINE_IID}"
- sdkmanager "platforms;android-36" "build-tools;36.0.0" >/dev/null
- npm ci
- npm --prefix apps/mobile-rn ci --workspaces=false
cache:
key: linux-android-15859902-jdk-17.0.20.1
paths:
- .ci-tools/android-sdk/
- .ci-tools/microsoft-jdk-17.0.20.1/
script:
- node scripts/ci/prepare-whisper-model.mjs
- cd apps/mobile-rn/android
@ -151,10 +164,14 @@ mobile-emulator-e2e:
needs:
- job: mobile-android
artifacts: true
before_script: []
before_script:
- . scripts/ci/bootstrap-linux-toolchain.sh android
cache:
key: linux-android-15859902-jdk-17.0.20.1
paths:
- .ci-tools/android-sdk/
- .ci-tools/microsoft-jdk-17.0.20.1/
script:
- export ANDROID_HOME=/opt/android
- export ANDROID_SDK_ROOT=/opt/android
- sdkmanager "platform-tools" "emulator" "platforms;android-35" "system-images;android-35;google_apis;x86_64" >/dev/null
- echo no | avdmanager create avd --force --name d3ro_ci_api35 --package "system-images;android-35;google_apis;x86_64"
- emulator -avd d3ro_ci_api35 -no-window -noaudio -no-boot-anim -gpu swiftshader_indirect -camera-back none &
@ -296,8 +313,7 @@ mobile-production-release:
script:
- |
set -euo pipefail
export ANDROID_HOME=/opt/android
export ANDROID_SDK_ROOT=/opt/android
. scripts/ci/bootstrap-linux-toolchain.sh android
curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" -o /tmp/node.tar.xz
echo '14b342e71204f811bde6153be8e04b62aef63c236fef92b55f9c83154b409647 /tmp/node.tar.xz' | sha256sum -c -
mkdir -p /tmp/node24
@ -331,7 +347,6 @@ mobile-production-release:
test -n "$D3RO_FIREBASE_EXPECTED_PROJECT_ID"
test -n "$D3RO_FIREBASE_EXPECTED_PROJECT_NUMBER"
test -n "$D3RO_FIREBASE_EXPECTED_MOBILESDK_APP_ID"
sdkmanager "platforms;android-36" "build-tools;36.0.0" >/dev/null
npm ci
npm --prefix apps/mobile-rn ci --workspaces=false
npm run security:secrets:test
@ -414,6 +429,11 @@ mobile-production-release:
apps/mobile-rn/android/app/build/outputs/release-publication/app-release.apk \
apps/mobile-rn/android/app/build/outputs/release-publication/app-release.aab \
> apps/mobile-rn/android/app/build/outputs/release-publication/SHA256SUMS.txt
cache:
key: linux-android-15859902-jdk-17.0.20.1
paths:
- .ci-tools/android-sdk/
- .ci-tools/microsoft-jdk-17.0.20.1/
after_script:
- rm -f apps/mobile-rn/android/app/release.keystore apps/mobile-rn/android/app/google-services.json apps/mobile-rn/android/app/release-evidence-private.pem
artifacts: