diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a9848603..00000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: node_js - -sudo: required - -services: - - docker - -node_js: - - "10" - -install: - - npm install - -before_script: - - npm run test-with-coverage - - npm run eslint - -script: - - ".travis/docker.sh" - - ".travis/trigger-downstream.sh" - -env: - global: - - DOCKER_USERNAME=koenkk - - secure: q5W9+mHz13PslLkTxuYNXivOau+N5OyB53sqgb+krOCPlbN9+gvi2Av9SribVd5jp2yx2O9rV/mr8eS0M2ykvBJ3UsIsCXiFL1dEPmsz1wlFAnW3kbD2EGhGFEV0dWRflSlA+5iQtcMPvbYu2PAOChUUoY7NNlhcz2EC+XXUapvvvaDwA1oSdtX+m61qyREshZb8B57DyXhziy6i/xjhFa84C0mR/iGFRWpZgcxmrNFH+/XDhSIpdq2KshhDWhjyag3ukAsTxTpqzLh1rFRlczjJEn0CcHG4WHsWHUFn9KK2lvT/YCDP8w0URnR1bCr8nyxGZJ2DLW6AzxZtJfWjvbeZYjO2R3WeHpzp6Jw6Qz5pG3gmu2FgeFpZ3FTEGtJ/Ev0/pjkY2Msx9mItzUJ7D8hY2noQZMPASar6oXEDYlkomx7gHHla0MPv3PKSJg5LX6Ybl137GIa6MLYYyz6SEKfyRUQhy3Itqrb/ID/ZP0UuLgyyDfShb8A6XOnsVqwZAsOPtU2UPnD1vsVXhjkpflK9+7QjL5m9MSqfAhg6qtwNsswl1KSiyhmdldGhZW5OfUasDxZKHyx7bsS1BhNnLi/iy4ifDh6KSr64aUW4iM0X99gkU+662Hgf73QpIG+oP41r30iEN0unTcRrFQDIbTSSapbA95bwUCBF1CgQC20= - - secure: em3lBVXvZ3kOVI4ipVlh93NIU6guLvyzHMmsLDuxhc92VFURqlYu3iXTTNEnknwyE31mziAkVFnmj+3OENd/VfzP01d4KKaYAQrbn2AnOMvcIIExLfaFU5QqbW1RMwRBIifhvrmboKt07pFsUy3Rghs80SwNSFDfLFoMhFMz+NdIZfJGW8LJy+gUPmz10YGzqh/chreowqOemgBBoswCGwIh1xB1KNejew3bQllnwQYGXcGuTDwDT4Wz+ObxlFt7YR/4n4oJY8jQYRPolM9qHQAGyn/Cn0TL3c8JqiBpVc1hm2OhYSDqvK0xf5IKsD+kIfFJPGa7nF2cwmhKdUNYR47oue3KB5tdrtDhwqUooTglvBOSXUIbthUR9Xu40ziyd5tHy0ixaLnDRGuKIIvEnXlcE6CgApoe3y2kHYa5dY+eUKxWwvH7b5hG+u82dYvw3VYpCHAnDQVgUzz4F63qZ2WZhcH0W3PF3/ytVAHyMu2vAMSrSXGi5xgM6el7Gp7SFVTFXBurbOaoJ3ZwwSEDP5d8mDyk1d8thmkQFL9P6iWtNnXOzjv4GIliEDWQg76BX6MLD3n3fnP0aq+RVmv+ev2Lp4xZZDfgGPek7g35IsaiohH6YvHloxE+ETQ0Ttb1lCQos9fj7LlI+ud6ExjwyRuEnzCOzr/qC/3Leg85Wc8= - - secure: GbJVFFY4nmQovp8i2VoQ1AOV8h9QoAcleBV9Mg5TItA8U2Y+6t9wx0iWbaclxOrzI727XZOk5HquMTKKTI430lT6OjU01+YJqwyq+k650YiX5PImsgJXGhFzBKeUcB3A53kKijfr9aEV00YiXRsKoKAn+Bl09m/9O+melBbTwO/YAQyt6EoUt21Yk0BoqpW2CTMPAgsU5tm6Ra3bbJ+IaUYVMYBtuHqtGiKg8jgTHqRhwKejDyV7+1dDxX8q51bK2Kb6PujbI1SS5wsJEpkU/eoPs7MuprmlYarYtBt1fDXSK1EOjcfpyEFRlrNLewIKiFEo3dkTOEtW2a4t3tcAiXOj8Hcvp+6RsjTfnjYmZweHVh/JKDhujjHBMviyTjwp4RnPaQSFou0iVIB5+Mo34hUhFDXc30SBzaux+lyR3rGoEu5pubZNjG5CkKIpw3IyduNKtIrlbCnfg+WDU3jrXmk0fzmwyriyXhx9BAzM+hyFiElZ+3xoXAlmDlwvaRZyJuQQNslwGPbZyX9EByIUkECjYPf92QPyD0mjbn8C32IphgQ515Up+15g2meDniugzowLJkDe3W86M5fB1kPQiDq5oT4M6TgAPRElLN6/ibyfOzDAtOdZgUiQvFnUQb1s9LunZqrc57AKzuzl2xG9Ok/cUkZFSOjrFr40jXgS2Lw= diff --git a/.travis/docker.sh b/.travis/docker.sh deleted file mode 100755 index 73dff8ec..00000000 --- a/.travis/docker.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -e - -login() { - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -} - -setup() { - echo '{\"experimental\": true}' | sudo tee /etc/docker/daemon.json - sudo apt update -y - sudo apt install --only-upgrade docker-ce -y - sudo service docker restart - docker --version - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - chmod a+x ~/.docker/cli-plugins/docker-buildx - #sudo docker run --rm --privileged hypriot/qemu-register -} - -build_and_push() { - docker buildx build \ - --build-arg COMMIT=$(git rev-parse --short HEAD) \ - --platform linux/arm64/v8,linux/amd64,linux/arm/v6,linux/arm/v7,linux/386 \ - -f docker/Dockerfile \ - --push \ - $1 - . -} - -# Only update Docker images for: -# - dev branch -# - version release -if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ ! -z ${TRAVIS_TAG+x} ] && [ ! "$TRAVIS_TAG" = "" ] -then - echo "Updating docker images for master branch!" - setup - login - build_and_push "-t koenkk/zigbee2mqtt:latest -t koenkk/zigbee2mqtt:$TRAVIS_TAG" -elif [ "$TRAVIS_BRANCH" = "dev" -a "$TRAVIS_PULL_REQUEST" = "false" ] -then - echo "Updating docker images for dev branch!" - setup - login - build_and_push "-t koenkk/zigbee2mqtt:latest-dev" -else - echo "Not updating docker images, triggered by pull request or not on master/dev branch" -fi diff --git a/.travis/trigger-downstream.sh b/.travis/trigger-downstream.sh deleted file mode 100755 index 86e72037..00000000 --- a/.travis/trigger-downstream.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -function travis_trigger() { - local org=$1 && shift - local repo=$1 && shift - local branch=${1:-master} && shift - - body="{ - \"request\": { - \"branch\": \"${branch}\" - } - }" - - curl -s -X POST \ - -H "Content-Type: application/json" \ - -H "Accept: application/json" \ - -H "Travis-API-Version: 3" \ - -H "Authorization: token $TRAVIS_TOKEN" \ - -d "$body" \ - "https://api.travis-ci.org/repo/${org}%2F${repo}/requests" -} - -# Only trigger downstream if on dev branch and not pull request -if [ "$TRAVIS_BRANCH" = "dev" -a "$TRAVIS_PULL_REQUEST" = "false" ] -then - echo "Triggering build of downstream projects!" - travis_trigger "danielwelch" "hassio-zigbee2mqtt" "master" -else - echo "Not triggering build of downstream projects, triggered by pull request or not on dev branch" -fi diff --git a/azure-pipelines.yaml b/azure-pipelines.yaml new file mode 100644 index 00000000..c27a09e0 --- /dev/null +++ b/azure-pipelines.yaml @@ -0,0 +1,77 @@ +trigger: +- master +- dev + +pool: + vmImage: 'ubuntu-latest' + +steps: + +# Prepare +- task: NodeTool@0 + inputs: + versionSpec: '10.x' + displayName: 'Install Node.js' +- bash: npm install + displayName: 'Install dependencies' + +# Verify +- bash: npm run test-with-coverage + displayName: 'Test' +- bash: npm run eslint + displayName: 'Lint' + +# Docker +- task: DockerInstaller@0 + displayName: Docker install + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + dockerVersion: 19.03.2 + releaseType: stable +- task: Docker@2 + displayName: Docker registry login + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + command: login + containerRegistry: docker_registry +- bash: | + sudo wget -O /usr/local/bin/buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 + sudo chmod a+x /usr/local/bin/buildx + docker run --rm --privileged hypriot/qemu-register + buildx create --use + buildx ls + displayName: 'Docker setup' + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) +- bash: | + buildx build \ + --build-arg COMMIT=$(git rev-parse --short HEAD) \ + --platform linux/arm64/v8,linux/amd64,linux/arm/v6,linux/arm/v7,linux/386 \ + -f docker/Dockerfile \ + --push \ + -t koenkk/zigbee2mqtt:latest-dev \ + . + displayName: 'Docker build dev' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/dev'), ne(variables['Build.Reason'], 'PullRequest')) +- bash: | + TAG="$(git describe --tags)" + buildx build \ + --build-arg COMMIT=$(git rev-parse --short HEAD) \ + --platform linux/arm64/v8,linux/amd64,linux/arm/v6,linux/arm/v7,linux/386 \ + -f docker/Dockerfile \ + --push \ + -t koenkk/zigbee2mqtt:latest -t "koenkk/zigbee2mqtt:$TAG" \ + . + displayName: 'Docker build release' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/tags/'), ne(variables['Build.Reason'], 'PullRequest')) + +# Trigger downstream +- bash: | + BODY="{\"request\": {\"branch\": \"master\"}}" + curl -s -X POST \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -H "Travis-API-Version: 3" \ + -H "Authorization: token $(TRAVIS_TOKEN)" \ + -d "$BODY" \ + "https://api.travis-ci.org/repo/danielwelch%2Fhassio-zigbee2mqtt/requests" + displayName: 'Trigger Hass.io build'