--- # Based on https://gitlab.com/hassio-addons/addon-node-red/blob/master/.gitlab-ci.yml variables: DOCKER_DRIVER: overlay2 DOCKER_HOST: tcp://docker:2375/ BASE_VERSION: '1.8.0' TZ: UTC stages: - lint - test - deploy .lint: &lint image: esphome/esphome-lint:latest stage: lint before_script: - script/setup tags: - docker .test: &test image: esphome/esphome-lint:latest stage: test before_script: - script/setup tags: - docker .docker-base: &docker-base image: esphome/esphome-base-builder before_script: - docker info - docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" script: - docker run --rm --privileged hassioaddons/qemu-user-static:latest - TAG="${CI_COMMIT_TAG#v}" - TAG="${TAG:-${CI_COMMIT_SHA:0:7}}" - echo "Tag ${TAG}" - | if [[ "${IS_HASSIO}" == "YES" ]]; then BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:${BASE_VERSION} BUILD_TO=esphome/esphome-hassio-${BUILD_ARCH} DOCKERFILE=docker/Dockerfile.hassio else BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:${BASE_VERSION} if [[ "${BUILD_ARCH}" == "amd64" ]]; then BUILD_TO=esphome/esphome else BUILD_TO=esphome/esphome-${BUILD_ARCH} fi DOCKERFILE=docker/Dockerfile fi - | docker build \ --build-arg "BUILD_FROM=${BUILD_FROM}" \ --build-arg "BUILD_VERSION=${TAG}" \ --tag "${BUILD_TO}:${TAG}" \ --file "${DOCKERFILE}" \ . - | if [[ "${RELEASE}" = "YES" ]]; then echo "Pushing to ${BUILD_TO}:${TAG}" docker push "${BUILD_TO}:${TAG}" fi - | if [[ "${LATEST}" = "YES" ]]; then echo "Pushing to :latest" docker tag ${BUILD_TO}:${TAG} ${BUILD_TO}:latest docker push ${BUILD_TO}:latest fi - | if [[ "${BETA}" = "YES" ]]; then echo "Pushing to :beta" docker tag \ ${BUILD_TO}:${TAG} \ ${BUILD_TO}:beta docker push ${BUILD_TO}:beta fi - | if [[ "${DEV}" = "YES" ]]; then echo "Pushing to :dev" docker tag \ ${BUILD_TO}:${TAG} \ ${BUILD_TO}:dev docker push ${BUILD_TO}:dev fi services: - docker:dind tags: - docker stage: deploy lint-custom: <<: *lint script: - script/ci-custom.py lint-python: <<: *lint script: - script/lint-python lint-tidy: <<: *lint script: - pio init --ide atom - | if ! patch -R -p0 -s -f --dry-run