From 4482cc29a3f7b5523606e00a79e76ba86470352e Mon Sep 17 00:00:00 2001 From: Gautham Varma K <43441192+GauthamVarmaK@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:03:31 +0530 Subject: [PATCH] :construction_worker: Update CI Use entralized GitHub Action Workflows provided by Hassio Community Addons for CI --- .github/workflows/ci.yaml | 180 +------------------------------------- 1 file changed, 2 insertions(+), 178 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fba1298..60ce9a5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,181 +12,5 @@ on: workflow_dispatch: jobs: - information: - name: Gather add-on information - runs-on: ubuntu-latest - outputs: - architectures: ${{ steps.information.outputs.architectures }} - build: ${{ steps.information.outputs.build }} - description: ${{ steps.information.outputs.description }} - name: ${{ steps.information.outputs.name }} - slug: ${{ steps.information.outputs.slug }} - target: ${{ steps.information.outputs.target }} - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run add-on information action - id: information - uses: frenck/action-addon-information@v1.4 - - lint-addon: - name: Lint Add-on - needs: - - information - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run Add-on Lint - uses: frenck/action-addon-linter@v2.11 - with: - community: true - path: "./${{ needs.information.outputs.target }}" - - lint-hadolint: - name: Hadolint - needs: - - information - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run Hadolint - uses: brpaz/hadolint-action@v1.5.0 - with: - dockerfile: "./${{ needs.information.outputs.target }}/Dockerfile" - - lint-json: - name: JSON Lint - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run JQ - run: | - shopt -s globstar - cat **/*.json | jq '.' - - lint-markdown: - name: MarkdownLint - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run mdl - uses: actionshub/markdownlint@2.0.2 - - lint-shellcheck: - name: Shellcheck - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run Shellcheck - uses: ludeeus/action-shellcheck@2.0.0 - env: - SHELLCHECK_OPTS: -s bash - - lint-yamllint: - name: YAMLLint - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run YAMLLint - uses: frenck/action-yamllint@v1.4 - - lint-prettier: - name: Prettier - runs-on: ubuntu-latest - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🚀 Run Prettier - uses: creyD/prettier_action@v4.2 - with: - prettier_options: --write **/*.{json,js,md,yaml} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - build: - name: Build ${{ matrix.architecture }} - needs: - - information - - lint-addon - - lint-hadolint - - lint-json - - lint-markdown - - lint-prettier - - lint-shellcheck - - lint-yamllint - runs-on: ubuntu-latest - strategy: - matrix: - architecture: ${{ fromJson(needs.information.outputs.architectures) }} - steps: - - name: â¤ĩī¸ Check out code from GitHub - uses: actions/checkout@v3 - - name: 🏗 Set up build cache - id: cache - uses: actions/cache@v3.2.5 - with: - path: /tmp/.docker-cache - key: docker-${{ matrix.architecture }}-${{ github.sha }} - restore-keys: | - docker-${{ matrix.architecture }} - - name: 🏗 Set up QEMU - uses: docker/setup-qemu-action@v1.2.0 - - name: 🏗 Set up Docker Buildx - uses: docker/setup-buildx-action@v1.6.0 - - name: â„šī¸ Compose build flags - id: flags - run: | - echo "::set-output name=date::$(date +"%Y-%m-%dT%H:%M:%SZ")" - from=$(yq --no-colors eval ".build_from.${{ matrix.architecture }}" "${{ needs.information.outputs.build }}") - echo "::set-output name=from::${from}" - - if [[ "${{ matrix.architecture}}" = "amd64" ]]; then - echo "::set-output name=platform::linux/amd64" - elif [[ "${{ matrix.architecture }}" = "i386" ]]; then - echo "::set-output name=platform::linux/386" - elif [[ "${{ matrix.architecture }}" = "armhf" ]]; then - echo "::set-output name=platform::linux/arm/v6" - elif [[ "${{ matrix.architecture }}" = "armv7" ]]; then - echo "::set-output name=platform::linux/arm/v7" - elif [[ "${{ matrix.architecture }}" = "aarch64" ]]; then - echo "::set-output name=platform::linux/arm64/v8" - else - echo "::error ::Could not determine platform for architecture ${{ matrix.architecture }}" - exit 1 - fi - - name: â¤ĩī¸ Download base image - run: docker pull "${{ steps.flags.outputs.from }}" - - name: 🚀 Build - uses: docker/build-push-action@v4.0.0 - with: - push: false - context: ${{ needs.information.outputs.target }} - file: ${{ needs.information.outputs.target }}/Dockerfile - cache-from: | - type=local,src=/tmp/.docker-cache - ghcr.io/gauthamvarmak/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:edge - cache-to: type=local,mode=max,dest=/tmp/.docker-cache-new - platforms: ${{ steps.flags.outputs.platform }} - build-args: | - BUILD_ARCH=${{ matrix.architecture }} - BUILD_DATE=${{ steps.flags.outputs.date }} - BUILD_DESCRIPTION=${{ needs.information.outputs.description }} - BUILD_FROM=${{ steps.flags.outputs.from }} - BUILD_NAME=${{ needs.information.outputs.name }} - BUILD_REF=${{ github.sha }} - BUILD_REPOSITORY=${{ github.repository }} - BUILD_VERSION=edge - # This ugly bit is necessary, or our cache will grow forever... - # Well until we hit GitHub's limit of 5GB :) - # https://github.com/docker/build-push-action/issues/252 - # https://github.com/moby/buildkit/issues/1896 - - name: 🚚 Swap build cache - run: | - rm -rf /tmp/.docker-cache - mv /tmp/.docker-cache-new /tmp/.docker-cache + workflows: + uses: hassio-addons/workflows/.github/workflows/addon-ci.yaml@main