Skip to content

Instantly share code, notes, and snippets.

@eberkund
Created June 20, 2018 17:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eberkund/fe15f5d57514fed599ef9cbad4c68c62 to your computer and use it in GitHub Desktop.
Save eberkund/fe15f5d57514fed599ef9cbad4c68c62 to your computer and use it in GitHub Desktop.
CircleCI
version: 2
defaults: &defaults
machine:
image: circleci/classic:edge
steps:
- run:
name: Restart Docker with experimental features enabled
command: |
sudo sh -c 'echo '\''DOCKER_OPTS="--experimental=true"'\'' >> /etc/default/docker'
sudo service docker restart
- run:
name: Check docker is running
command: docker info
- run:
name: Pull Community Hass.io Add-ons build environment
command: docker pull hassioaddons/build-env:latest
- run:
name: Log in to Docker Hub
command: |
if [[ "${CIRCLE_BRANCH}" = "master" || ! -z "${CIRCLE_TAG:-}" ]];
then
docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}"
fi
- checkout
- run:
name: Get QEMU user mode processor emulation binaries
command: |
curl -L -s "https://github.com/hassio-addons/qemu-user-static/releases/download/v2.10.1/qemu-aarch64-static.tar.gz" | tar zxvf - -C ./base/rootfs/usr/bin/
curl -L -s "https://github.com/hassio-addons/qemu-user-static/releases/download/v2.10.1/qemu-arm-static.tar.gz" | tar zxvf - -C ./base/rootfs/usr/bin/
- deploy:
name: Build and (maybe) deploy
command: |
if [[ "${CIRCLE_BRANCH}" = "master" || ! -z "${CIRCLE_TAG:-}" ]];
then
docker run \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.docker:/root/.docker \
-v "$PWD":/docker \
hassioaddons/build-env:latest \
--target base \
--${ARCH} \
--git \
--push
else
docker run \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD":/docker \
hassioaddons/build-env:latest \
--target base \
--git \
--${ARCH}
fi
jobs:
aarch64:
<<: *defaults
environment:
ARCH: aarch64
amd64:
<<: *defaults
environment:
ARCH: amd64
armhf:
<<: *defaults
environment:
ARCH: armhf
i386:
<<: *defaults
environment:
ARCH: i386
workflows:
version: 2
build_and_maybe_deploy:
jobs:
- aarch64:
filters:
tags:
only: /.*/
- amd64:
filters:
tags:
only: /.*/
- armhf:
filters:
tags:
only: /.*/
- i386:
filters:
tags:
only: /.*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment