mirror of
https://github.com/hassio-addons/addon-vscode.git
synced 2025-05-03 18:51:23 +00:00
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from v1.1.1 to v1.1.2. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v1.1.1...2a4b53665e15ce7d7049afb11ff1f70ff1610609) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
182 lines
5.8 KiB
YAML
182 lines
5.8 KiB
YAML
---
|
||
name: CI
|
||
|
||
# yamllint disable-line rule:truthy
|
||
on:
|
||
push:
|
||
pull_request:
|
||
types:
|
||
- opened
|
||
- reopened
|
||
- synchronize
|
||
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@v2.3.4
|
||
- name: 🚀 Run add-on information action
|
||
id: information
|
||
uses: frenck/action-addon-information@v1.0.0
|
||
|
||
lint-addon:
|
||
name: Lint Add-on
|
||
needs:
|
||
- information
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: ⤵️ Check out code from GitHub
|
||
uses: actions/checkout@v2.3.4
|
||
- name: 🚀 Run Add-on Lint
|
||
uses: frenck/action-addon-linter@v2.1
|
||
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@v2.3.4
|
||
- name: 🚀 Run Hadolint
|
||
uses: brpaz/hadolint-action@v1.3.1
|
||
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@v2.3.4
|
||
- 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@v2.3.4
|
||
- 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@v2.3.4
|
||
- name: 🚀 Run Shellcheck
|
||
uses: ludeeus/action-shellcheck@1.1.0
|
||
env:
|
||
SHELLCHECK_OPTS: -s bash
|
||
|
||
lint-yamllint:
|
||
name: YAMLLint
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: ⤵️ Check out code from GitHub
|
||
uses: actions/checkout@v2.3.4
|
||
- name: 🚀 Run YAMLLint
|
||
uses: frenck/action-yamllint@v1.1
|
||
|
||
lint-prettier:
|
||
name: Prettier
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: ⤵️ Check out code from GitHub
|
||
uses: actions/checkout@v2.3.4
|
||
- name: 🚀 Run Prettier
|
||
uses: creyD/prettier_action@v3.3
|
||
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@v2.3.4
|
||
- name: 🏗 Set up build cache
|
||
id: cache
|
||
uses: actions/cache@v2.1.4
|
||
with:
|
||
path: /tmp/.docker-cache
|
||
key: docker-${{ github.ref }}-${{ matrix.architecture }}-${{ github.sha }}
|
||
restore-keys: |
|
||
docker-${{ github.ref }}-${{ matrix.architecture }}
|
||
- name: 🏗 Set up QEMU
|
||
uses: docker/setup-qemu-action@v1.0.1
|
||
- name: 🏗 Set up Docker Buildx
|
||
uses: docker/setup-buildx-action@v1.1.2
|
||
- name: ℹ️ Compose build flags
|
||
id: flags
|
||
run: |
|
||
echo "::set-output name=date::$(date +"%Y-%m-%dT%H:%M:%SZ")"
|
||
from=$(jq --raw-output ".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: 🚀 Build
|
||
uses: docker/build-push-action@v2.4.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/hassio-addons/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:edge
|
||
cache-to: type=local,mode=max,dest=/tmp/.docker-cache
|
||
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
|