mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 08:28:12 +01:00
132 lines
2.8 KiB
YAML
132 lines
2.8 KiB
YAML
|
---
|
||
|
# 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).+@/
|
||
|
|