name: vab CI on: workflow_call: push: paths: - 'vlib/**' - 'thirdparty/**' - 'cmd/tools/builders/**.v' - '**/vab_ci.yml' - '!**.md' pull_request: paths: - 'vlib/**' - 'thirdparty/**' - 'cmd/tools/builders/**.v' - '**/vab_ci.yml' - '!**.md' concurrency: group: vab-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }} cancel-in-progress: true jobs: vab-compiles-v-examples: runs-on: ubuntu-24.04 timeout-minutes: 20 env: VAB_FLAGS: --api 30 --build-tools 29.0.0 -v 3 steps: - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 11 - uses: actions/checkout@v6 - name: Build V run: make -j4 && ./v symlink - name: Install vab run: | v retry -- v install vab v -g ~/.vmodules/vab sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab - name: Run tests run: v -g test ~/.vmodules/vab - name: Run vab --help run: vab --help - name: Run vab doctor run: | vab doctor which d8 || true which dx || true - name: Build graphical V examples as APK 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') mkdir apks for example in "${v_examples[@]}"; do safe_name=$(echo "$example" | sed 's%/%-%' | sed 's%\.%-%' ) vab "examples/$example" -o "apks/$safe_name.apk" done v-compiles-os-android: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - uses: actions/checkout@v6 - name: Build V run: make -j4 && ./v symlink - name: Install vab run: | v retry -- v install vab v -g ~/.vmodules/vab 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: Check `v -os android` *without* -apk flag run: .github/workflows/android_cross_compile.vsh