Skip to content

vab, cli: notify with remedies for know problems on errors (#330) #610

vab, cli: notify with remedies for know problems on errors (#330)

vab, cli: notify with remedies for know problems on errors (#330) #610

Workflow file for this run

name: Build APK/AAB CI
on:
push:
paths-ignore:
- "**.md"
pull_request:
paths-ignore:
- "**.md"
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
cancel-in-progress: true
jobs:
build-v-examples-as-apk-and-aab:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
java-version: [11,15,20]
android-api: [31, 33]
fail-fast: false
timeout-minutes: 20
env:
VAB_FLAGS: -v 3 --build-tools 29.0.0
steps:
- uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java-version }}
- name: Checkout V
uses: actions/checkout@v4
with:
repository: vlang/v
- name: Build local v
run: make -j2
- name: Checkout vab
uses: actions/checkout@v4
with:
path: vab
- name: Simulate "v install vab"
run: mv vab ~/.vmodules
- name: Build vab
run: ./v -g ~/.vmodules/vab
- name: Symlink vab
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
- name: Run vab --help
run: vab --help
- name: Run vab doctor
run: vab doctor
- name: Run tests
run: ./v test ~/.vmodules/vab
# AAB
- name: Install AAB dependencies
run: |
vab install bundletool
vab install aapt2
- name: Build examples as APK + AAB (Java ${{ matrix.java-version }}) ${{ matrix.android-api }}
run: |
declare -a v_examples=('flappylearning' '2048' 'fireworks' 'tetris' 'sokol/particles' 'sokol/drawing.v' 'sokol/freetype_raven.v' 'gg/polygons.v' 'gg/raven_text_rendering.v' 'gg/rectangles.v' 'gg/stars.v' 'gg/worker_thread.v')
for example in "${v_examples[@]}"; do
package_id=$( echo "$example" | sed 's%/%%' | sed 's%\.%%' )
package_id=$( echo "v$package_id" )
# Setup env
mkdir -p java-${{ matrix.java-version }}/$example
# APK
vab --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.apk
[ -f java-${{ matrix.java-version }}/$example/$package_id.apk ]
# AAB
vab --package-id "io.v.aab.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.aab
# Checks output inferring
[ -f java-${{ matrix.java-version }}/$example/$package_id.aab ]
done
build-v-examples-with-gc-disabled:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
java-version: [11, 15, 20]
android-api: [31, 33]
fail-fast: false
timeout-minutes: 20
env:
VAB_FLAGS: -v 3 -gc none --build-tools 29.0.0
steps:
- uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java-version }}
- name: Checkout V
uses: actions/checkout@v4
with:
repository: vlang/v
- name: Build local v
run: make -j2
- name: Checkout vab
uses: actions/checkout@v4
with:
path: vab
- name: Simulate "v install vab"
run: mv vab ~/.vmodules
- name: Build vab
run: ./v -g ~/.vmodules/vab
- name: Symlink vab
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
- name: Run vab --help
run: vab --help
- name: Run vab doctor
run: vab doctor
- name: Run tests
run: ./v test ~/.vmodules/vab
- name: Build examples with garbage collector (Java ${{ matrix.java-version }}) ${{ matrix.android-api }}
run: |
declare -a v_examples=('flappylearning' '2048' 'fireworks' 'tetris' 'sokol/particles' 'sokol/drawing.v' 'sokol/freetype_raven.v' 'gg/polygons.v' 'gg/raven_text_rendering.v' 'gg/rectangles.v' 'gg/stars.v' 'gg/worker_thread.v')
for example in "${v_examples[@]}"; do
package_id=$( echo "$example" | sed 's%/%%' | sed 's%\.%%' )
package_id=$( echo "vgc$package_id" )
# Setup env
mkdir -p gc-java-${{ matrix.java-version }}/$example
# APK
vab -gc boehm --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o gc-java-${{ matrix.java-version }}/$example/$package_id.apk
done
build-legacy-v-examples-as-apk-and-aab:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
java-version: [8] # 9, 10 is in a bad state currently
android-api: [31, 33]
fail-fast: false
timeout-minutes: 20
env:
VAB_FLAGS: -v 3 --build-tools 29.0.0
steps:
- uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java-version }}
- name: Checkout V
uses: actions/checkout@v4
with:
repository: vlang/v
- name: Build local v
run: make -j2
- name: Checkout vab
uses: actions/checkout@v4
with:
path: vab
- name: Simulate "v install vab"
run: mv vab ~/.vmodules
- name: Build vab
run: ./v -g ~/.vmodules/vab
- name: Symlink vab
run: sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab
- name: Run vab --help
run: vab --help
- name: Ruin Android environment on purpose
run: |
sudo rm -fr /usr/local/lib/android
- name: Run 'vab doctor'
run: vab doctor
- name: Run 'vab install auto'
run: |
unset ANDROID_SDK_ROOT # These are set in the CI by default
unset ANDROID_HOME
unset ANDROID_NDK_ROOT
vab install auto
- name: Run vab doctor
run: vab doctor
- name: Run tests
run: ./v test ~/.vmodules/vab
# AAB
- name: Install AAB dependencies
run: |
vab install bundletool
vab install aapt2
- name: Build examples as APK + AAB (Java ${{ matrix.java-version }}) ${{ matrix.android-api }}
run: |
declare -a v_examples=('flappylearning' '2048' 'fireworks' 'tetris' 'sokol/particles' 'sokol/drawing.v' 'sokol/freetype_raven.v' 'gg/polygons.v' 'gg/raven_text_rendering.v' 'gg/rectangles.v' 'gg/stars.v' 'gg/worker_thread.v')
for example in "${v_examples[@]}"; do
package_id=$( echo "$example" | sed 's%/%%' | sed 's%\.%%' )
package_id=$( echo "v$package_id" )
# Setup env
mkdir -p java-${{ matrix.java-version }}/$example
# APK
vab --package-id "io.v.apk.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.apk
[ -f java-${{ matrix.java-version }}/$example/$package_id.apk ]
# AAB
vab --package-id "io.v.aab.$package_id" --api ${{ matrix.android-api }} "examples/$example" -o java-${{ matrix.java-version }}/$example/$package_id.aab
# Checks output inferring
[ -f java-${{ matrix.java-version }}/$example/$package_id.aab ]
done