Skip to content

Update versions of things used in CI #1846

Update versions of things used in CI

Update versions of things used in CI #1846

Workflow file for this run

name: ci
on:
pull_request:
workflow_dispatch:
jobs:
ktlint:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.3.1/ktlint && chmod a+x ktlint
- run: ./ktlint
gradle:
runs-on: ${{ matrix.os }}
needs: tox4j
strategy:
matrix:
os:
- ubuntu-24.04
- macos-14
- windows-2022
steps:
- name: Download tox4j
uses: actions/download-artifact@v4
with:
name: tox4j
path: ~/.m2
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/master' }}
# First build the .apks, then run things like check and lint tasks attached to the build task.
# We do this in multiple steps to try to reduce the peak memory usage as a plain
# `./gradlew build` often uses up all memory and dies in CI.
# See: https://issuetracker.google.com/issues/297088701
- run: ./gradlew assembleDebug
- run: ./gradlew assembleRelease
- run: ./gradlew build
- name: Upload apk
if: startsWith(matrix.os, 'ubuntu')
uses: actions/upload-artifact@v4
with:
name: atox-debug.apk
path: ./atox/build/outputs/apk/debug/atox-debug.apk
if-no-files-found: error
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
- name: Enable hardware acceleration
if: startsWith(matrix.os, 'ubuntu')
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run Android tests
if: startsWith(matrix.os, 'ubuntu')
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 31
arch: x86_64
script: ./gradlew connectedCheck || { adb logcat -d; exit 1; }
tox4j:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Set up cache
id: cache
uses: actions/cache@v4
with:
path: ~/.m2/repository/org/toktok
key: from-src-${{ hashFiles('scripts/**') }}
# TODO(robinlinden): Update NDK.
- name: Set up NDK
if: steps.cache.outputs.cache-hit != 'true'
run: |
# https://github.com/actions/virtual-environments/issues/5595
SDKMANAGER="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager"
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
- name: Install tox4j dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: |
sudo apt-get update && sudo apt install yasm
curl -s https://get.sdkman.io | bash
source /home/runner/.sdkman/bin/sdkman-init.sh
sdk install sbt
- name: Build tox4j
if: steps.cache.outputs.cache-hit != 'true'
run: |
export ANDROID_NDK_HOME="${ANDROID_SDK_ROOT}/ndk/21.4.7075529"
./scripts/build-host -j$(nproc)
./scripts/build-aarch64-linux-android -j$(nproc) release
./scripts/build-arm-linux-androideabi -j$(nproc) release
./scripts/build-i686-linux-android -j$(nproc) release
./scripts/build-x86_64-linux-android -j$(nproc) release
- name: Upload tox4j
uses: actions/upload-artifact@v4
with:
name: tox4j
path: ~/.m2
if-no-files-found: error
include-hidden-files: true
bazel:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Set up Android
run: |
echo "y" | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;$NDK_VERSION" | grep -v = || true
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$NDK_VERSION" >> $GITHUB_ENV
env:
NDK_VERSION: "25.2.9519653"
- name: Set up Bazel cache
uses: actions/cache@v4
with:
path: ~/.cache/bazel
key: bazel-${{ hashFiles('.bazelversion', 'WORKSPACE', 'bazel/**') }}
- run: bazel test //...
buildifier:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install
run: |
wget --output-document=buildifier https://github.com/bazelbuild/buildtools/releases/download/v7.3.1/buildifier-linux-amd64
sudo chmod +x buildifier
- name: Check
run: ./buildifier --lint=warn --warnings=all -mode diff WORKSPACE $(find . -type f -name "BUILD.*")
prettier:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: npm install --global [email protected]
- run: npx prettier --ignore-path .gitignore --write .
- run: git diff --exit-code
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true