-
-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add new repository workflow * Prettified Code! * Migrate Docker build arguments * Documentation tweaks * Address add-on lint errors Co-authored-by: frenck <frenck@users.noreply.github.com>
- Loading branch information
Showing
16 changed files
with
664 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: daily | ||
time: "06:00" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
--- | ||
- name: "breaking-change" | ||
color: ee0701 | ||
description: "A breaking change for existing users." | ||
- name: "bugfix" | ||
color: ee0701 | ||
description: "Inconsistencies or issues which will cause a problem for users or implementors." | ||
- name: "documentation" | ||
color: 0052cc | ||
description: "Solely about the documentation of the project." | ||
- name: "enhancement" | ||
color: 1d76db | ||
description: "Enhancement of the code, not introducing new features." | ||
- name: "refactor" | ||
color: 1d76db | ||
description: "Improvement of existing code, not introducing new features." | ||
- name: "performance" | ||
color: 1d76db | ||
description: "Improving performance, not introducing new features." | ||
- name: "new-feature" | ||
color: 0e8a16 | ||
description: "New features or options." | ||
- name: "maintenance" | ||
color: 2af79e | ||
description: "Generic maintenance tasks." | ||
- name: "ci" | ||
color: 1d76db | ||
description: "Work that improves the continue integration." | ||
- name: "dependencies" | ||
color: 1d76db | ||
description: "Upgrade or downgrade of project dependencies." | ||
|
||
- name: "in-progress" | ||
color: fbca04 | ||
description: "Issue is currently being resolved by a developer." | ||
- name: "stale" | ||
color: fef2c0 | ||
description: "There has not been activity on this issue or PR for quite some time." | ||
- name: "no-stale" | ||
color: fef2c0 | ||
description: "This issue or PR is exempted from the stable bot." | ||
|
||
- name: "security" | ||
color: ee0701 | ||
description: "Marks a security issue that needs to be resolved asap." | ||
- name: "incomplete" | ||
color: fef2c0 | ||
description: "Marks a PR or issue that is missing information." | ||
- name: "invalid" | ||
color: fef2c0 | ||
description: "Marks a PR or issue that is missing information." | ||
|
||
- name: "beginner-friendly" | ||
color: 0e8a16 | ||
description: "Good first issue for people wanting to contribute to the project." | ||
- name: "help-wanted" | ||
color: 0e8a16 | ||
description: "We need some extra helping hands or expertise in order to resolve this." | ||
|
||
- name: "hacktoberfest" | ||
description: "Issues/PRs are participating in the Hacktoberfest." | ||
color: fbca04 | ||
- name: "hacktoberfest-accepted" | ||
description: "Issues/PRs are participating in the Hacktoberfest." | ||
color: fbca04 | ||
|
||
- name: "priority-critical" | ||
color: ee0701 | ||
description: "This should be dealt with ASAP. Not fixing this issue would be a serious error." | ||
- name: "priority-high" | ||
color: b60205 | ||
description: "After critical issues are fixed, these should be dealt with before any further issues." | ||
- name: "priority-medium" | ||
color: 0e8a16 | ||
description: "This issue may be useful, and needs some attention." | ||
- name: "priority-low" | ||
color: e4ea8a | ||
description: "Nice addition, maybe... someday..." | ||
|
||
- name: "major" | ||
color: b60205 | ||
description: "This PR causes a major version bump in the version number." | ||
- name: "minor" | ||
color: 0e8a16 | ||
description: "This PR causes a minor version bump in the version number." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
--- | ||
name-template: "v$RESOLVED_VERSION" | ||
tag-template: "v$RESOLVED_VERSION" | ||
change-template: "- $TITLE @$AUTHOR (#$NUMBER)" | ||
sort-direction: ascending | ||
|
||
categories: | ||
- title: "🚨 Breaking changes" | ||
labels: | ||
- "breaking-change" | ||
- title: "✨ New features" | ||
labels: | ||
- "new-feature" | ||
- title: "🐛 Bug fixes" | ||
labels: | ||
- "bugfix" | ||
- title: "🚀 Enhancements" | ||
labels: | ||
- "enhancement" | ||
- "refactor" | ||
- "performance" | ||
- title: "🧰 Maintenance" | ||
labels: | ||
- "maintenance" | ||
- "ci" | ||
- title: "📚 Documentation" | ||
labels: | ||
- "documentation" | ||
- title: "⬆️ Dependency updates" | ||
labels: | ||
- "dependencies" | ||
|
||
version-resolver: | ||
major: | ||
labels: | ||
- "major" | ||
- "breaking-change" | ||
minor: | ||
labels: | ||
- "minor" | ||
- "new-feature" | ||
patch: | ||
labels: | ||
- "bugfix" | ||
- "chore" | ||
- "ci" | ||
- "dependencies" | ||
- "documentation" | ||
- "enhancement" | ||
- "performance" | ||
- "refactor" | ||
default: patch | ||
|
||
template: | | ||
## What’s changed | ||
$CHANGES |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
--- | ||
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@v1.3.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.0 | ||
|
||
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.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@v2.3.4 | ||
- name: 🚀 Run YAMLLint | ||
uses: frenck/action-yamllint@v1.0.2 | ||
|
||
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.3 | ||
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.1 | ||
- 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.2.2 | ||
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 |
Oops, something went wrong.