diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index c1641ec..9cfda9a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,25 +20,33 @@ jobs: git fetch -q --depth 1 "https://git.rehbock.xyz/${{ github.repository }}.git" "${{ github.sha }}" git checkout -q FETCH_HEAD - - name: Install Node 22 + # /root/.npm and /root/.gradle and /root/android-sdk are persistent named + # volumes (act_runner config.yaml) — downloads below only happen on a cold cache. + - name: Install Node 22 (cached in npm volume) run: | - curl -sLo /tmp/node.tar.xz https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz - mkdir -p /opt/node && tar xJf /tmp/node.tar.xz -C /opt/node --strip-components=1 - echo "/opt/node/bin" >> "$GITHUB_PATH" - /opt/node/bin/node --version + NODE_DIR="$HOME/.npm/_node-v22.14.0" + if [ ! -x "$NODE_DIR/bin/node" ]; then + curl -sLo /tmp/node.tar.xz https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz + mkdir -p "$NODE_DIR" && tar xJf /tmp/node.tar.xz -C "$NODE_DIR" --strip-components=1 + fi + echo "$NODE_DIR/bin" >> "$GITHUB_PATH" + "$NODE_DIR/bin/node" --version - name: npm ci run: npm ci --no-audit --no-fund - - name: Install Android SDK + NDK + - name: Install Android SDK + NDK (cached volume) run: | - mkdir -p "$HOME/android-sdk/cmdline-tools" - curl -sLo /tmp/ct.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip - unzip -q /tmp/ct.zip -d /tmp - mv /tmp/cmdline-tools "$HOME/android-sdk/cmdline-tools/latest" - SDKMAN="$HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager" - yes | "$SDKMAN" --sdk_root="$HOME/android-sdk" --licenses >/dev/null 2>&1 || true - "$SDKMAN" --sdk_root="$HOME/android-sdk" \ + SDK="$HOME/android-sdk" + SDKMAN="$SDK/cmdline-tools/latest/bin/sdkmanager" + if [ ! -x "$SDKMAN" ]; then + mkdir -p "$SDK/cmdline-tools" + curl -sLo /tmp/ct.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip + unzip -q /tmp/ct.zip -d /tmp + mv /tmp/cmdline-tools "$SDK/cmdline-tools/latest" + fi + yes | "$SDKMAN" --sdk_root="$SDK" --licenses >/dev/null 2>&1 || true + "$SDKMAN" --sdk_root="$SDK" \ "platform-tools" "platforms;android-36" "build-tools;36.0.0" \ "ndk;27.1.12297006" "cmake;3.22.1" >/dev/null