update CI #22277
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Openpilot Tests | |
on: [push, pull_request] | |
env: | |
RUN: docker run --shm-size 1G --rm tmppilot /bin/sh -c | |
LOAD: docker load -i tmppilot.tar.gz/tmppilot.tar.gz | |
UNIT_TEST: cd /tmp/openpilot && python -m unittest discover | |
jobs: | |
build: | |
name: build | |
runs-on: ubuntu-16.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Checkout submodules | |
run: | | |
git submodule update --init | |
- name: Build docker image | |
run: | | |
docker pull $(grep -ioP '(?<=^from)\s+\S+' Dockerfile.openpilot) || true | |
docker pull docker.io/commaai/openpilot:latest || true | |
docker build --cache-from docker.io/commaai/openpilot:latest -t tmppilot -f Dockerfile.openpilot . | |
docker save tmppilot:latest | gzip > tmppilot.tar.gz | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
path: tmppilot.tar.gz | |
push: | |
name: push | |
runs-on: ubuntu-16.04 | |
needs: build | |
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/openpilot' | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: Login to dockerhub | |
run: docker login -u wmelching -p ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Tag image | |
run: docker tag tmppilot docker.io/commaai/openpilot:latest | |
- name: Push image | |
run: docker push docker.io/commaai/openpilot:latest | |
linter: | |
name: linter | |
runs-on: ubuntu-16.04 | |
needs: build | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: flake8 | |
run: $RUN "cd /tmp/openpilot/ && ./flake8_openpilot.sh" | |
- name: pylint | |
run: $RUN "cd /tmp/openpilot/ && ./pylint_openpilot.sh" | |
unit_tests: | |
name: unit tests | |
runs-on: ubuntu-16.04 | |
needs: build | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: Run unit tests | |
run: | | |
$RUN /tmp/openpilot/selfdrive/test/test_fingerprints.py | |
$RUN "$UNIT_TEST common" | |
$RUN "$UNIT_TEST opendbc/can" | |
$RUN "$UNIT_TEST selfdrive/boardd" | |
$RUN "$UNIT_TEST selfdrive/controls" | |
$RUN "$UNIT_TEST selfdrive/loggerd" | |
$RUN "$UNIT_TEST selfdrive/car" | |
$RUN "$UNIT_TEST selfdrive/locationd" | |
$RUN "$UNIT_TEST selfdrive/athena" | |
$RUN "$UNIT_TEST tools/lib/tests" | |
process_replay: | |
name: process replay | |
runs-on: ubuntu-16.04 | |
needs: build | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: Run replay | |
run: | | |
CONTAINER_NAME="tmppilot_${GITHUB_SHA}" | |
docker run --shm-size 1G --name ${CONTAINER_NAME} tmppilot /bin/sh -c "cd /tmp/openpilot/selfdrive/test/process_replay && CI=1 ./test_processes.py" | |
- name: Copy diff | |
if: always() | |
run: | | |
CONTAINER_NAME="tmppilot_${GITHUB_SHA}" | |
docker cp $CONTAINER_NAME:/tmp/openpilot/selfdrive/test/process_replay/diff.txt diff.txt | |
docker rm $CONTAINER_NAME | |
- name: Print diff | |
if: always() | |
run: cat diff.txt | |
- uses: actions/upload-artifact@v1 | |
if: always() | |
with: | |
name: process_replay_diff.txt | |
path: diff.txt | |
test_longitudinal: | |
name: longitudinal | |
runs-on: ubuntu-16.04 | |
needs: build | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: Test longitudinal | |
run: | | |
CONTAINER_NAME="tmppilot_${GITHUB_SHA}" | |
docker run --shm-size 1G --name ${CONTAINER_NAME} tmppilot /bin/sh -c "cd /tmp/openpilot/selfdrive/test/longitudinal_maneuvers && OPTEST=1 ./test_longitudinal.py" | |
- name: Copy artifacts | |
if: always() | |
run: | | |
CONTAINER_NAME="tmppilot_${GITHUB_SHA}" | |
mkdir out | |
docker cp $CONTAINER_NAME:/tmp/openpilot/selfdrive/test/longitudinal_maneuvers/out/longitudinal/ out/ | |
docker rm $CONTAINER_NAME | |
- uses: actions/upload-artifact@v1 | |
if: always() | |
with: | |
name: longitudinal | |
path: out | |
test_car_models: | |
name: test car models | |
runs-on: ubuntu-16.04 | |
needs: build | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/download-artifact@v1 | |
with: | |
name: tmppilot.tar.gz | |
- name: Load image | |
run: $LOAD | |
- name: Test car models | |
run: $RUN "mkdir -p /data/params && cd /tmp/openpilot/selfdrive/test/ && ./test_car_models.py" |