Add Docker CI workflow that runs when docker files change

This commit is contained in:
Otto Winter 2020-07-15 22:00:53 +02:00
parent dfbf225403
commit d58d0e89c7
No known key found for this signature in database
GPG key ID: 48ED2DDB96D7682C

54
.github/workflows/ci-docker.yml vendored Normal file
View file

@ -0,0 +1,54 @@
name: CI for docker images
# Only run when docker paths change
on:
push:
branches: [dev, beta, master]
paths:
- 'docker/**'
- '.github/workflows/**'
pull_request:
paths:
- 'docker/**'
- '.github/workflows/**'
jobs:
check-docker:
name: Build docker containers
runs-on: ubuntu-latest
strategy:
matrix:
arch: [amd64, armv7, aarch64]
build_type: ["hassio", "docker"]
steps:
- uses: actions/checkout@v2
- name: Set up env variables
run: |
base_version="2.3.4"
if [[ "${{ matrix.build_type }}" == "hassio" ]]; then
build_from="esphome/esphome-hassio-base-${{ matrix.arch }}:${base_version}"
build_to="esphome/esphome-hassio-${{ matrix.arch }}"
dockerfile="docker/Dockerfile.hassio"
else
build_from="esphome/esphome-base-${{ matrix.arch }}:${base_version}"
build_to="esphome/esphome-${{ matrix.arch }}"
dockerfile="docker/Dockerfile"
fi
echo "::set-env name=BUILD_FROM::${build_from}"
echo "::set-env name=BUILD_TO::${build_to}"
echo "::set-env name=DOCKERFILE::${dockerfile}"
- name: Pull for cache
run: |
docker pull "${BUILD_TO}:dev" || true
- name: Register QEMU binfmt
run: docker run --rm --privileged multiarch/qemu-user-static:5.0.0-2 --reset -p yes
- run: |
docker build \
--build-arg "BUILD_FROM=${BUILD_FROM}" \
--build-arg "BUILD_VERSION=ci" \
--cache-from "${BUILD_TO}:dev" \
--file "${DOCKERFILE}" \
.