--- # Based on https://gitlab.com/hassio-addons/addon-node-red/blob/master/.gitlab-ci.yml variables: DOCKER_DRIVER: overlay2 stages: - lint - build - deploy .lint: &lint stage: lint tags: - python2.7 - esphomeyaml-lint .hassio-builder: &hassio-builder before_script: - docker info - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" services: - docker:dind tags: - hassio-builder flake8: <<: *lint script: - flake8 esphomeyaml pylint: <<: *lint script: - pylint esphomeyaml .build: &build <<: *hassio-builder stage: build script: - | hassio-builder.sh \ -t . \ -i ottowinter/esphomeyaml-hassio-${ADDON_ARCH} \ -d "$CI_REGISTRY" \ --${ADDON_ARCH} - | docker tag \ "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:dev" \ "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${CI_COMMIT_SHA}" - docker push "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${CI_COMMIT_SHA}" - docker push "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:dev" # Generic deploy template .deploy: &deploy <<: *hassio-builder stage: deploy script: - version=${CI_COMMIT_TAG:1} - echo "Publishing version ${version}" - docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" - docker pull "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${CI_COMMIT_SHA}" - | docker tag \ "${CI_REGISTRY}/ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${CI_COMMIT_SHA}" \ "ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${version}" - | docker tag \ "ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${version}" \ "ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:latest" - docker push "ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:${version}" - docker push "ottowinter/esphomeyaml-hassio-${ADDON_ARCH}:latest" # Build jobs build:armhf: <<: *build variables: ADDON_ARCH: armhf #build:aarch64: # <<: *build # variables: # ADDON_ARCH: aarch64 build:i386: <<: *build variables: ADDON_ARCH: i386 build:amd64: <<: *build variables: ADDON_ARCH: amd64 # Deploy jobs deploy:armhf: <<: *deploy variables: ADDON_ARCH: armhf only: - /^v\d+\.\d+\.\d+(?:(?:(?:\+|\.)?[a-zA-Z0-9]+)*)?$/ except: - /^(?!master).+@/ #deploy:aarch64: # <<: *deploy # variables: # ADDON_ARCH: aarch64 # only: # - /^v\d+\.\d+\.\d+(?:(?:(?:\+|\.)?[a-zA-Z0-9]+)*)?$/ # except: # - /^(?!master).+@/ deploy:i386: <<: *deploy variables: ADDON_ARCH: i386 only: - /^v\d+\.\d+\.\d+(?:(?:(?:\+|\.)?[a-zA-Z0-9]+)*)?$/ except: - /^(?!master).+@/ deploy:amd64: <<: *deploy variables: ADDON_ARCH: amd64 only: - /^v\d+\.\d+\.\d+(?:(?:(?:\+|\.)?[a-zA-Z0-9]+)*)?$/ except: - /^(?!master).+@/