Skip to content

CI build for Android #45

CI build for Android

CI build for Android #45

Workflow file for this run

name: build_test
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
CCACHE_DIR: ${{ github.workspace }}/ccache
CCACHE_MAXSIZE: 500M
CCACHE_KEY_SUFFIX: r1
jobs:
find-all-packages:
runs-on: ubuntu-22.04
outputs:
packages: ${{ steps.list-packages.outputs.packages }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: install python dependencies
run: pip install --upgrade pip pyyaml
- name: List all packages
run: python scripts/list_package_versions.py
- name: List all packages in GitHub Actions format
id: list-packages
run: python scripts/list_package_versions.py --github | tee $GITHUB_OUTPUT
build:
runs-on: ${{ matrix.config.os }}
needs:
- find-all-packages
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.find-all-packages.outputs.packages) }}
config:
# - { os: ubuntu-22.04, compiler: clang-15 }
- { os: ubuntu-22.04, compiler: ndk-26.3, ndk-version: 26.3.11579264 }
steps:
- name: checkout
uses: actions/checkout@v4
# - name: ubuntu install ccache
# if: runner.os == 'Linux'
# run: |
# sudo apt install ccache
# ccache -V
# - name: macos install ccache
# if: runner.os == 'macOS'
# run: |
# brew install ccache
# ccache -V
- name: install ndk
if: startsWith(matrix.config.compiler, 'ndk-')
run: echo "y" | sudo ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "cmake;3.22.1" "ndk;${{ matrix.config.ndk-version }}"
- name: setup python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: install python dependencies
run: pip install --upgrade pip conan
- name: conan remote
run: conan remote add --index 0 odr https://artifactory.opendocument.app/artifactory/api/conan/conan
- name: conan login
run: conan remote login odr admin --password ${{ secrets.ARTIFACTORY }}
- name: conan config
run: conan config install .github/config/${{ matrix.config.os }}-${{ matrix.config.compiler }}/conan
# - name: cache
# uses: actions/cache@v4
# with:
# path: |
# ~/.ccache
# /Users/runner/Library/Caches/ccache
# key: ${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ env.CCACHE_KEY_SUFFIX }}
# restore-keys: |
# ${{ matrix.config.os }}-${{ matrix.config.compiler }}-
- name: conan install
run: conan install ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --build missing --profile ndk-26.3
- name: conan graph
if: always()
run: conan graph info ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --format=html --profile ndk-26.3 > graph.html
- uses: actions/upload-artifact@v4
if: always()
with:
name: graph.html
path: graph.html
- name: conan source
run: conan source ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --profile ndk-26.3
- name: conan build
run: conan build ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --profile ndk-26.3
- name: conan export
run: conan export ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --profile ndk-26.3
- name: conan export-pkg
run: conan export-pkg ${{ matrix.package.conanfile }} --version ${{ matrix.package.version }} --profile ndk-26.3
- name: conan test
run: |
test_conanfile=$(dirname ${{ matrix.package.conanfile }})/test_package/conanfile.py
conan test $test_conanfile ${{ matrix.package.package_version }} --build missing --profile ndk-26.3
- name: conan upload
if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
run: conan upload "*" --check --confirm --remote odr