From 13c692e20655760f1a5b29e0ea60f4c5b906dd77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Mon, 1 Feb 2021 16:11:09 +0100 Subject: [PATCH] Move CI from azure to github (#178) * Move CI from azure to github * fix syntax --- .github/dependabot.yml | 18 ++++--- .github/workflows/build-wheels.yml | 36 +++++++++++++ .github/workflows/ci.yml | 46 +++++++++++++++++ README.md | 4 +- azure-pipelines-ci.yml | 40 -------------- azure-pipelines-release.yml | 73 -------------------------- azure-pipelines-wheel.yml | 83 ------------------------------ 7 files changed, 95 insertions(+), 205 deletions(-) create mode 100644 .github/workflows/build-wheels.yml create mode 100644 .github/workflows/ci.yml delete mode 100644 azure-pipelines-ci.yml delete mode 100644 azure-pipelines-release.yml delete mode 100644 azure-pipelines-wheel.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b9f29b58..ad87a3b4 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,14 @@ version: 2 updates: -- package-ecosystem: pip - directory: "/" - schedule: - interval: daily - time: "06:00" - open-pull-requests-limit: 10 + - package-ecosystem: pip + directory: "/" + schedule: + interval: daily + time: "06:00" + open-pull-requests-limit: 10 + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: daily + time: "06:00" + open-pull-requests-limit: 10 diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml new file mode 100644 index 00000000..0b8d4185 --- /dev/null +++ b/.github/workflows/build-wheels.yml @@ -0,0 +1,36 @@ +name: Wheels + +on: + push: + branches: + - master + paths: + - requirements.txt + - requirements_build.txt + +jobs: + build: + name: Build ${{ matrix.arch }}-python${{ matrix.python }}-alpine${{ matrix.alpine }} + runs-on: ubuntu-latest + strategy: + matrix: + python: ["3.7", "3.8"] + alpine: ["3.10", "3.11", "3.12"] + arch: ["aarch64", "armhf", "armv7", "amd64", "i386"] + + steps: + - name: Check out code from GitHub + uses: actions/checkout@v2 + + - name: Prepare requirements + run: cat requirements.txt requirements_build.txt > requirements_all.txt + + - name: Build wheels + uses: home-assistant/wheels@master + with: + tag: ${{ matrix.python }}-alpine${{ matrix.alpine }} + arch: ${{ matrix.arch }} + wheels-host: ${{ secrets.WHEELS_HOST }} + wheels-key: ${{ secrets.WHEELS_KEY }} + apk: "build-base;libffi-dev;openssl-dev" + requirements: "requirements_all.txt" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..888c0a35 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + branches: + - master + +env: + PYTHON_VERSION: 3.8 + HADOLINT_VERSION: "v1.16.3" + VIRTUALENV_PIP: "20.2" + +jobs: + tox: + name: Tox + runs-on: ubuntu-latest + steps: + - name: Check out code from GitHub + uses: actions/checkout@v2 + + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v2.2.1 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Install tox + run: python3 -m pip install tox + + - name: Run tox + run: tox + + hadolint: + name: Hadolint + runs-on: ubuntu-latest + steps: + - name: Check out code from GitHub + uses: actions/checkout@v2 + + - name: Run Hadolint + run: | + docker run --rm -i \ + -v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \ + hadolint/hadolint:${{ env.HADOLINT_VERSION }} < Dockerfile diff --git a/README.md b/README.md index dcea1195..3a291fae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -[![Build Status](https://dev.azure.com/home-assistant/Hass.io/_apis/build/status/wheels?branchName=master)](https://dev.azure.com/home-assistant/Hass.io/_build/latest?definitionId=11&branchName=master) - -# Hass.io Wheels builder +# Home Assistant Wheels builder ```sh diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml deleted file mode 100644 index 35b59ec1..00000000 --- a/azure-pipelines-ci.yml +++ /dev/null @@ -1,40 +0,0 @@ -# https://dev.azure.com/home-assistant - -trigger: - batch: true - branches: - include: - - master -pr: - - master -variables: - - name: versionHadolint - value: "v1.16.3" - - name: VIRTUALENV_PIP - value: "20.2" - -jobs: - - job: "Tox" - pool: - vmImage: "ubuntu-latest" - steps: - - task: UsePythonVersion@0 - displayName: "Use Python $(python.version)" - inputs: - versionSpec: "3.7" - - script: pip install tox - displayName: "Install Tox" - - script: tox - displayName: "Run Tox" - - - job: "Hadolint" - pool: - vmImage: "ubuntu-latest" - steps: - - script: sudo docker pull hadolint/hadolint:$(versionHadolint) - displayName: "Install Hadolint" - - script: | - sudo docker run --rm -i \ - -v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \ - hadolint/hadolint:$(versionHadolint) < Dockerfile - displayName: "Run Hadolint" diff --git a/azure-pipelines-release.yml b/azure-pipelines-release.yml deleted file mode 100644 index 95fddcd7..00000000 --- a/azure-pipelines-release.yml +++ /dev/null @@ -1,73 +0,0 @@ -# https://dev.azure.com/home-assistant - -trigger: - branches: - include: - - master - tags: - include: - - "*" -pr: none -variables: - - name: versionBuilder - value: "4.4" - - group: docker -resources: - repositories: - - repository: azure - type: github - name: "home-assistant/ci-azure" - endpoint: "home-assistant" - -stages: - - stage: "Validate" - jobs: - - template: templates/azp-job-version.yaml@azure - parameters: - ignoreMaster: true - - - stage: "Release" - jobs: - - job: "Release" - pool: - vmImage: "ubuntu-latest" - strategy: - matrix: - 37-Alpine310: - buildPython: "3.7-alpine3.10" - buildArgs: "" - 37-Alpine311: - buildPython: "3.7-alpine3.11" - buildArgs: "" - 37-Alpine312: - buildPython: "3.7-alpine3.12" - buildArgs: "" - 38-Alpine310: - buildPython: "3.8-alpine3.10" - buildArgs: "" - 38-Alpine311: - buildPython: "3.8-alpine3.11" - buildArgs: "" - 38-Alpine312: - buildPython: "3.8-alpine3.12" - buildArgs: "--release-tag" - steps: - - script: sudo docker login -u $(dockerUser) -p $(dockerPassword) - displayName: "Docker hub login" - - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder) - displayName: "Install Builder" - - script: | - if [ "$(Build.SourceBranchName)" == "master" ]; then - version="dev" - else - version="$(Build.SourceBranchName)" - fi - - sudo docker run --rm --privileged \ - -v ~/.docker:/root/.docker \ - -v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \ - homeassistant/amd64-builder:$(versionBuilder) \ - --builder-wheels $(buildPython) --all \ - $(buildArgs) --version "${version}" \ - -t /data --docker-hub homeassistant - displayName: "Build Release" diff --git a/azure-pipelines-wheel.yml b/azure-pipelines-wheel.yml deleted file mode 100644 index 0b803c1d..00000000 --- a/azure-pipelines-wheel.yml +++ /dev/null @@ -1,83 +0,0 @@ -# https://dev.azure.com/home-assistant - -trigger: - batch: true - branches: - include: - - master - paths: - include: - - requirements.txt - - requirements_build.txt - - requirements_tests.txt -pr: none -resources: - repositories: - - repository: azure - type: github - name: "home-assistant/ci-azure" - endpoint: "home-assistant" - -stages: - - stage: "Wheels" - jobs: - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_37_Alpine310" - builderVersion: "dev-3.7-alpine3.10" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements" - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_37_Alpine311" - builderVersion: "dev-3.7-alpine3.11" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements" - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_37_Alpine312" - builderVersion: "dev-3.7-alpine3.12" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements" - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_38_Alpine310" - builderVersion: "dev-3.8-alpine3.10" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements" - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_38_Alpine311" - builderVersion: "dev-3.8-alpine3.11" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements" - - template: templates/azp-job-wheels.yaml@azure - parameters: - jobName: "Wheels_38_Alpine312" - builderVersion: "dev-3.8-alpine3.12" - builderApk: "build-base;libffi-dev;openssl-dev" - wheelsRequirement: "requirements_all.txt" - preBuild: - - script: | - cat requirements.txt requirements_build.txt > requirements_all.txt - displayName: "Prepare requirements"