Files
rtabmap/.github/workflows/android.yml
T

79 lines
2.4 KiB
YAML

name: android
# Android build environments (docker/noble/android/rtabmap_apiXX).
# amd64 only, so a single native runner and no manifest juggling.
# Note: these build FROM introlab3it/rtabmap:android-noble-deps, which is not
# produced by any workflow; it is still built and pushed by hand.
on:
push:
branches:
- 'master'
pull_request:
branches:
- '**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
docker:
# A manual dispatch is honored only on master, the only ref we push from.
if: ${{ github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
docker_tag: [android23, android24, android26, android30]
include:
- docker_tag: android23
docker_tags: |
introlab3it/rtabmap:android23
introlab3it/rtabmap:tango
api_version: 23
- docker_tag: android24
docker_tags: |
introlab3it/rtabmap:android24
api_version: 24
- docker_tag: android26
docker_tags: |
introlab3it/rtabmap:android26
api_version: 26
- docker_tag: android30
docker_tags: |
introlab3it/rtabmap:android30
api_version: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to DockerHub
# Only needed when pushing; skipped on pull requests (secrets are
# unavailable for fork PRs and we don't push there anyway).
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64
file: ./docker/noble/android/rtabmap_apiXX/Dockerfile
build-args: |
API_VERSION=${{ matrix.api_version }}
tags: ${{ matrix.docker_tags }}
cache-from: type=registry,ref=introlab3it/rtabmap:${{ matrix.docker_tag }}
cache-to: type=inline