mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-29 22:24:26 +00:00 
			
		
		
		
	Update Gitlab CI
This commit is contained in:
		
							
								
								
									
										263
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										263
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							| @@ -2,39 +2,97 @@ | ||||
| # Based on https://gitlab.com/hassio-addons/addon-node-red/blob/master/.gitlab-ci.yml | ||||
| variables: | ||||
|   DOCKER_DRIVER: overlay2 | ||||
|   DOCKER_HOST: tcp://docker:2375/ | ||||
|  | ||||
| stages: | ||||
|   - lint | ||||
|   - test | ||||
|   - build | ||||
|   - deploy | ||||
|  | ||||
| .lint: &lint | ||||
|   image: esphome/esphome-base-amd64 | ||||
|   stage: lint | ||||
|   before_script: | ||||
|     - pip install -e . | ||||
|     - pip install flake8==3.6.0 pylint==1.9.4 pillow | ||||
|   tags: | ||||
|     - python2.7 | ||||
|     - esphome-lint | ||||
|     - docker | ||||
|  | ||||
| .test: &test | ||||
|   image: esphome/esphome-base-amd64 | ||||
|   stage: test | ||||
|   before_script: | ||||
|     - pip install -e . | ||||
|   tags: | ||||
|     - python2.7 | ||||
|     - esphome-test | ||||
|     - docker | ||||
|   variables: | ||||
|     TZ: UTC | ||||
|  | ||||
| .docker-builder: &docker-builder | ||||
| .docker-base: &docker-base | ||||
|   image: esphome/esphome-base-builder | ||||
|   before_script: | ||||
|     - docker info | ||||
|     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" | ||||
|     - 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}:1.0.0 | ||||
|         BUILD_TO=esphome/esphome-hassio-${BUILD_ARCH} | ||||
|         DOCKERFILE=docker/Dockerfile.hassio | ||||
|       else | ||||
|         BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.0.0 | ||||
|         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: | ||||
|     - hassio-builder | ||||
|     - docker | ||||
|   stage: deploy | ||||
|  | ||||
| flake8: | ||||
|   <<: *lint | ||||
| @@ -61,15 +119,9 @@ test3: | ||||
|   script: | ||||
|     - esphome tests/test3.yaml compile | ||||
|  | ||||
| # Build jobs | ||||
| build:normal: | ||||
|   <<: *docker-builder | ||||
|   stage: build | ||||
|   script: | ||||
|     - docker build -t "${CI_REGISTRY}/esphome/esphome:dev" . | ||||
|  | ||||
| .deploy-pypi: &deploy-pypi | ||||
|   stage: deploy | ||||
|   image: python:2.7 | ||||
|   before_script: | ||||
|   - pip install -e . | ||||
|   - pip install twine | ||||
| @@ -77,8 +129,7 @@ build:normal: | ||||
|   - python setup.py sdist | ||||
|   - twine upload dist/* | ||||
|   tags: | ||||
|   - python2.7 | ||||
|   - esphome-test | ||||
|   - docker | ||||
|  | ||||
| deploy-release:pypi: | ||||
|   <<: *deploy-pypi | ||||
| @@ -93,3 +144,181 @@ deploy-beta:pypi: | ||||
|     - /^v\d+\.\d+\.\d+b\d+$/ | ||||
|   except: | ||||
|     - /^(?!rc).+@/ | ||||
|  | ||||
| .latest: &latest | ||||
|   <<: *docker-base | ||||
|   only: | ||||
|   - /^v([0-9\.]+)$/ | ||||
|   except: | ||||
|   - branches | ||||
|  | ||||
| .latest-vars: &latest-vars | ||||
|   RELEASE: YES | ||||
|   LATEST: YES | ||||
|   # Also push to beta tag | ||||
|   BETA: YES | ||||
|  | ||||
| .beta: &beta | ||||
|   <<: *docker-base | ||||
|   only: | ||||
|   - /^v([0-9\.]+b\d+)$/ | ||||
|   except: | ||||
|   - branches | ||||
|  | ||||
| .beta-vars: &beta-vars | ||||
|   RELEASE: YES | ||||
|   BETA: YES | ||||
|  | ||||
| .dev: &dev | ||||
|   <<: *docker-base | ||||
|   only: | ||||
|   - dev | ||||
|  | ||||
| .dev-vars: &dev-vars | ||||
|   DEV: YES | ||||
|  | ||||
| # aarch64 | ||||
| aarch64-beta-hassio: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: aarch64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-aarch64:1.0.0 | ||||
|     RELEASE: "YES" | ||||
|     IS_HASSIO: "YES" | ||||
| #aarch64-dev-hassio: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: aarch64 | ||||
| #    BUILD_FROM: esphome/esphome-hassio-base-aarch64:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "YES" | ||||
| aarch64-latest-hassio: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: aarch64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-aarch64:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
| amd64-beta-docker: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: amd64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-amd64:1.0.0 | ||||
|     IS_HASSIO: "NO" | ||||
|     RELEASE: "YES" | ||||
| amd64-beta-hassio: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: amd64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-amd64:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     RELEASE: "YES" | ||||
| #amd64-dev-docker: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: amd64 | ||||
| #    BUILD_FROM: esphome/esphome-base-amd64:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "NO" | ||||
| #amd64-dev-hassio: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: amd64 | ||||
| #    BUILD_FROM: esphome/esphome-hassio-base-amd64:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "YES" | ||||
| amd64-latest-docker: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: amd64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-amd64:1.0.0 | ||||
|     IS_HASSIO: "NO" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
| amd64-latest-hassio: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: amd64 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-amd64:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
| armhf-beta-hassio: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: armhf | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-armhf:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     RELEASE: "YES" | ||||
| #armhf-dev-hassio: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: armhf | ||||
| #    BUILD_FROM: esphome/esphome-hassio-base-armhf:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "YES" | ||||
| armhf-latest-hassio: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: armhf | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-armhf:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
| i386-beta-docker: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: i386 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
|     IS_HASSIO: "NO" | ||||
|     RELEASE: "YES" | ||||
| i386-beta-hassio: | ||||
|   <<: *beta | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: i386 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     RELEASE: "YES" | ||||
| #i386-dev-docker: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: i386 | ||||
| #    BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "NO" | ||||
| #i386-dev-hassio: | ||||
| #  <<: *dev | ||||
| #  variables: | ||||
| #    BUILD_ARCH: i386 | ||||
| #    BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
| #    DEV: "YES" | ||||
| #    IS_HASSIO: "YES" | ||||
| i386-latest-docker: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: i386 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
|     IS_HASSIO: "NO" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
| i386-latest-hassio: | ||||
|   <<: *latest | ||||
|   variables: | ||||
|     BETA: "YES" | ||||
|     BUILD_ARCH: i386 | ||||
|     BUILD_FROM: esphome/esphome-hassio-base-i386:1.0.0 | ||||
|     IS_HASSIO: "YES" | ||||
|     LATEST: "YES" | ||||
|     RELEASE: "YES" | ||||
|   | ||||
| @@ -1,3 +1,8 @@ | ||||
| # ESPHome | ||||
| # ESPHome [](https://travis-ci.org/esphome/esphome) [](https://discord.gg/KhAMKrd) [](https://GitHub.com/esphome/esphome/releases/) | ||||
|  | ||||
| # TODO | ||||
| [](https://esphome.io/) | ||||
|  | ||||
| **Documentation:** https://esphome.io/ | ||||
|  | ||||
| For issues, please go to [the issue tracker](https://github.com/esphome/issues/issues). | ||||
| For feature requests, please see [feature requests](https://github.com/esphome/feature-requests/issues). | ||||
|   | ||||
| @@ -322,7 +322,7 @@ class EsphomeCore(object): | ||||
|         if 'ethernet' in self.config: | ||||
|             return self.config['ethernet'][CONF_USE_ADDRESS] | ||||
|  | ||||
|         raise EsphomeError("No network configured") | ||||
|         return None | ||||
|  | ||||
|     @property | ||||
|     def esphome_core_version(self):  # type: () -> Dict[str, str] | ||||
|   | ||||
| @@ -2,9 +2,9 @@ esphome: | ||||
|   name: $devicename | ||||
|   platform: ESP8266 | ||||
|   board: esp07 | ||||
|     # Use this for testing while developing: | ||||
|     # Note the travis check for esphome PRs will fail until the | ||||
|     # esphome-core PR has been merged. | ||||
|   # Use this for testing while developing: | ||||
|   # Note the travis check for esphome PRs will fail until the | ||||
|   # esphome-core PR has been merged. | ||||
|   # esphome_core_version: | ||||
|   #   local: ~/path/to/esphome-core | ||||
|   build_path: build/test3 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user