Docker layer caching in CI (#273)

* docker push

* use cached docker image
master
Adeeb 2020-06-09 11:50:09 -07:00 committed by GitHub
parent 559f1934c8
commit 3a2918465c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 10 deletions

View File

@ -2,26 +2,38 @@ name: Tests
on: [push, pull_request]
env:
RUN: docker run --shm-size 1G --rm opendbc /bin/sh -c
BUILD: |
docker pull $(grep -ioP '(?<=^from)\s+\S+' Dockerfile) || true
docker pull docker.io/commaai/opendbc:latest || true
docker build --cache-from docker.io/commaai/opendbc:latest -t opendbc -f Dockerfile .
jobs:
test:
runs-on: ubuntu-16.04
steps:
- uses: actions/checkout@v2
- run: |
set -e
docker build -t opendbc .
name: "Build"
- name: Build Docker image
run: eval "$BUILD"
- name: Static analysis
run: |
docker run opendbc bash -c "cd opendbc && git init && git add -A && pre-commit run --all"
- run: |
- name: Unit tests
run: |
docker run opendbc bash -c "python -m unittest discover opendbc"
name: "Unit tests"
- run: |
- name: Python linter
run: |
docker run opendbc bash -c "cd opendbc/can/tests/linter_python; PYTHONPATH=/ ./flake8_opendbc.sh"
docker run opendbc bash -c "cd opendbc/can/tests/linter_python; PYTHONPATH=/ ./pylint_opendbc.sh"
name: "Python linter"
- run: |
- name: Generator test
run: |
docker run opendbc bash -c "cd opendbc/can/tests/; PYTHONPATH=/ ./test_generator.sh"
name: "Generator test"
- name: Push to dockerhub
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/opendbc'
run: |
docker login -u wmelching -p ${{ secrets.DOCKERHUB_TOKEN }}
docker tag opendbc docker.io/commaai/opendbc:latest
docker push docker.io/commaai/opendbc:latest