You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
4.4 KiB
110 lines
4.4 KiB
name: tools
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
BASE_IMAGE: openpilot-base
|
|
CL_BASE_IMAGE: openpilot-base-cl
|
|
DOCKER_REGISTRY: ghcr.io/commaai
|
|
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
BUILD: |
|
|
DOCKER_BUILDKIT=1 docker build --pull --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $DOCKER_REGISTRY/$BASE_IMAGE:latest -t $DOCKER_REGISTRY/$BASE_IMAGE:latest -t $BASE_IMAGE:latest -f Dockerfile.openpilot_base .
|
|
|
|
RUN: docker run --shm-size 1G -v $GITHUB_WORKSPACE:/tmp/openpilot -w /tmp/openpilot -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v ~/scons_cache:/tmp/scons_cache -v ~/comma_download_cache:/tmp/comma_download_cache -v ~/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/sh -c
|
|
|
|
BUILD_CL: |
|
|
DOCKER_BUILDKIT=1 docker build --pull --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $DOCKER_REGISTRY/$CL_BASE_IMAGE:latest -t $DOCKER_REGISTRY/$CL_BASE_IMAGE:latest -t $CL_BASE_IMAGE:latest -f Dockerfile.openpilot_base_cl .
|
|
RUN_CL: docker run --shm-size 1G -v $GITHUB_WORKSPACE:/tmp/openpilot -w /tmp/openpilot -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v ~/scons_cache:/tmp/scons_cache -v ~/comma_download_cache:/tmp/comma_download_cache -v ~/openpilot_cache:/tmp/openpilot_cache $CL_BASE_IMAGE /bin/sh -c
|
|
|
|
|
|
jobs:
|
|
plotjuggler:
|
|
name: plotjuggler
|
|
runs-on: ubuntu-20.04
|
|
timeout-minutes: 45
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Build Docker image
|
|
run: eval "$BUILD"
|
|
- name: Unit test
|
|
timeout-minutes: 2
|
|
run: |
|
|
${{ env.RUN }} "scons -j$(nproc) --directory=/tmp/openpilot/cereal && \
|
|
apt-get update && \
|
|
apt-get install -y libdw-dev libqt5svg5-dev libqt5x11extras5-dev && \
|
|
cd /tmp/openpilot/tools/plotjuggler && \
|
|
./test_plotjuggler.py"
|
|
|
|
simulator:
|
|
name: simulator
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
IMAGE_NAME: openpilot-sim
|
|
if: github.repository == 'commaai/openpilot'
|
|
timeout-minutes: 45
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- uses: ./.github/workflows/setup
|
|
with:
|
|
setup_docker_scons_cache: true
|
|
- name: Build base cl image
|
|
run: eval "$BUILD_CL"
|
|
- name: Build simulator image
|
|
run: |
|
|
DOCKER_BUILDKIT=1 docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $DOCKER_REGISTRY/$IMAGE_NAME:latest -t $DOCKER_REGISTRY/$IMAGE_NAME:latest -f tools/sim/Dockerfile.sim .
|
|
- name: Push to container registry
|
|
if: github.ref == 'refs/heads/master' && github.repository == 'commaai/openpilot'
|
|
run: |
|
|
$DOCKER_LOGIN
|
|
docker push $DOCKER_REGISTRY/$IMAGE_NAME:latest
|
|
|
|
docs:
|
|
name: build docs
|
|
runs-on: ubuntu-20.04
|
|
timeout-minutes: 45
|
|
env:
|
|
BUILD: |
|
|
docker pull $DOCKER_REGISTRY/openpilot-docs:latest
|
|
DOCKER_BUILDKIT=1 docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $DOCKER_REGISTRY/openpilot-docs:latest -t $DOCKER_REGISTRY/openpilot-docs:latest -f docs/docker/Dockerfile .
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- uses: ./.github/workflows/setup
|
|
with:
|
|
setup_docker_scons_cache: true
|
|
git_lfs: false
|
|
- name: Push docker container
|
|
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/openpilot'
|
|
run: |
|
|
$DOCKER_LOGIN
|
|
docker push $DOCKER_REGISTRY/openpilot-docs:latest
|
|
|
|
devcontainer:
|
|
name: devcontainer
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Setup Dev Container CLI
|
|
run: npm install -g @devcontainers/cli
|
|
- name: Build dev container image
|
|
run: devcontainer build --workspace-folder .
|
|
- name: Run dev container
|
|
run: devcontainer up --workspace-folder .
|
|
- name: Test environment
|
|
run: devcontainer exec --workspace-folder . scons --dry-run
|
|
|