From 80832b5ac22f874522c1a55d7b3df9553215a1f4 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:25:17 -0500 Subject: [PATCH 01/12] =?UTF-8?q?=F0=9F=94=A8=20Update=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/CODEOWNERS | 5 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/autolabeler.yml | 2 - .github/config.yml | 50 ------- .github/dependabot.yaml | 8 ++ .github/invite-contributors.yml | 10 -- .github/labels.yml | 85 +++++++++++ .github/lock.yml | 20 --- .github/move.yml | 20 --- .github/no-response.yml | 13 -- .github/potential-duplicates.yml | 14 -- .github/release-drafter.yml | 57 ++++++++ .github/settings.yml | 150 ------------------- .github/stale.yml | 61 -------- .github/support.yml | 22 --- .github/workflows/ci.yaml | 190 +++++++++++++++++++++++++ .github/workflows/deploy.yaml | 140 ++++++++++++++++++ .github/workflows/labels.yaml | 22 +++ .github/workflows/lock.yaml | 21 +++ .github/workflows/release-drafter.yaml | 18 +++ .github/workflows/stale.yaml | 40 ++++++ 21 files changed, 583 insertions(+), 367 deletions(-) delete mode 100644 .github/autolabeler.yml delete mode 100644 .github/config.yml create mode 100644 .github/dependabot.yaml delete mode 100644 .github/invite-contributors.yml create mode 100644 .github/labels.yml delete mode 100644 .github/lock.yml delete mode 100644 .github/move.yml delete mode 100644 .github/no-response.yml delete mode 100644 .github/potential-duplicates.yml create mode 100644 .github/release-drafter.yml delete mode 100644 .github/settings.yml delete mode 100644 .github/stale.yml delete mode 100644 .github/support.yml create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/deploy.yaml create mode 100644 .github/workflows/labels.yaml create mode 100644 .github/workflows/lock.yaml create mode 100644 .github/workflows/release-drafter.yaml create mode 100644 .github/workflows/stale.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3fbad49..9e0a25e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1 @@ -# Require maintainer's :+1: for changes to the .github/ repo-config files -# mainly due to https://github.com/probot/settings privilege escalation -.github/* @frenck -.gitlab-ci.yml @frenck +.github/* @sinclairpaul diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cbd529a..14f7b5b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -6,4 +6,4 @@ > ([Github link][autolink-references] to related issues or pull requests) -[autolink-references]: https://help.github.com/articles/autolinked-references-and-urls/ \ No newline at end of file +[autolink-references]: https://help.github.com/articles/autolinked-references-and-urls/ diff --git a/.github/autolabeler.yml b/.github/autolabeler.yml deleted file mode 100644 index 3ce5703..0000000 --- a/.github/autolabeler.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -"Type: Documentation": ["*.md", "*.j2"] diff --git a/.github/config.yml b/.github/config.yml deleted file mode 100644 index f5828bb..0000000 --- a/.github/config.yml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# Configuration for request-info - https://github.com/behaviorbot/request-info - -# *OPTIONAL* Comment to reply with -# Can be either a string : -requestInfoReplyComment: - - "We would appreciate it if you could provide us with more info about this issue/pr!" - - "Hmmm... That issue/PR is kinda low on text. Could you please provide some more content?" - -# *OPTIONAL* default titles to check against for lack of descriptiveness -# MUST BE ALL LOWERCASE -requestInfoDefaultTitles: [] - -# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given -requestInfoLabelToAdd: "Incomplete" - -# *OPTIONAL* Require Pull Requests to contain more information than what is provided in the PR template -# Will fail if the pull request's body is equal to the provided template -checkPullRequestTemplate: true - -# *OPTIONAL* Only warn about insufficient information on these events type -# Keys must be lowercase. Valid values are 'issue' and 'pullRequest' -requestInfoOn: - pullRequest: true - issue: true - -# *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on -# keys must be GitHub usernames -requestInfoUserstoExclude: [] - -# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome - -# Comment to be posted to on first time issues -newIssueWelcomeComment: > - :wave: Thanks for opening your first issue here! - If you're reporting a :bug: bug, please make sure you include steps to reproduce it. - Also, logs, error messages and information about your hardware might be useful. - -# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome - -# Comment to be posted to on PRs from first time contributors in your repository -newPRWelcomeComment: > - :sparkling_heart: Thanks for opening this pull request! :sparkling_heart: - If your PR gets accepted and merged in, we will invite you to the project :tada: - -# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge - -# Comment to be posted to on pull requests merged by a first time user -firstPRMergeComment: > - Congrats on merging your first pull request! :tada::tada::tada: diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 0000000..45dd97a --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,8 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: daily + time: "06:00" diff --git a/.github/invite-contributors.yml b/.github/invite-contributors.yml deleted file mode 100644 index 25eb31a..0000000 --- a/.github/invite-contributors.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# If true, this will add new contributors as outside collaborators -# to the repo their PR was merged in. Team name is ignored if this -# flag is set to true. -isOutside: false - -# Specify team name to add new contributors to a specific team -# within your organization. -# Use team name or team-name-slug -team: Contributors diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 0000000..2d0f68a --- /dev/null +++ b/.github/labels.yml @@ -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." diff --git a/.github/lock.yml b/.github/lock.yml deleted file mode 100644 index 4b1e816..0000000 --- a/.github/lock.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Configuration for lock-threads - https://github.com/dessant/lock-threads -# Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 30 - -# Comment to post before locking. Set to `false` to disable -lockComment: > - This thread has been automatically locked because it has not had recent - activity. Please open a new issue for related bugs and link to relevant - comments in this thread. - -# Issues or pull requests with these labels will not be locked -# exemptLabels: -# - no-locking - -# Limit to only `issues` or `pulls` -# only: issues - -# Add a label when locking. Set to `false` to disable -lockLabel: false diff --git a/.github/move.yml b/.github/move.yml deleted file mode 100644 index 0c2276a..0000000 --- a/.github/move.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Delete the command comment when it contains no other content -deleteCommand: true - -# Close the source issue after moving -closeSourceIssue: true - -# Lock the source issue after moving -lockSourceIssue: true - -# Mention issue and comment authors -mentionAuthors: true - -# Preserve mentions in the issue content -keepContentMentions: false - -# Set custom aliases for targets -# aliases: -# r: repo -# or: owner/repo diff --git a/.github/no-response.yml b/.github/no-response.yml deleted file mode 100644 index bb9f0f2..0000000 --- a/.github/no-response.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Configuration for probot-no-response - https://github.com/probot/no-response -# Number of days of inactivity before an Issue is closed for lack of response -daysUntilClose: 14 -# Label requiring a response -responseRequiredLabel: "Status: Awaiting response" -# Comment to post when closing an Issue for lack of response. Set to `false` to disable -closeComment: > - This issue has been automatically closed because there has been no response - to our request for more information from the original author. With only the - information that is currently in the issue, we don't have enough information - to take action. Please reach out if you have or find the answers we need so - that we can investigate further. diff --git a/.github/potential-duplicates.yml b/.github/potential-duplicates.yml deleted file mode 100644 index 00c7c0f..0000000 --- a/.github/potential-duplicates.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# Label name and color to set, when potential duplicates are detected -issueLabel: "Potential duplicate" -labelColor: e6e6e6 - -# If similarity is higher than this threshold, issue will be marked as duplicate -threshold: 0.70 - -# Comment to post when potential duplicates are detected -referenceComment: > - Potential duplicates found: - {{#issues}} - - [#{{ number }}] {{ title }} ({{ accuracy }}%) - {{/issues}} diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..cb404ea --- /dev/null +++ b/.github/release-drafter.yml @@ -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 diff --git a/.github/settings.yml b/.github/settings.yml deleted file mode 100644 index 07ef1b4..0000000 --- a/.github/settings.yml +++ /dev/null @@ -1,150 +0,0 @@ ---- -repository: - description: "Bookstack - Home Assistant Community Add-ons" - homepage: https://addons.community - topics: bookstack, addon, addons, home-assistant, homeassistant - private: false - has_issues: true - has_projects: false - has_wiki: false - has_downloads: false - default_branch: master - allow_squash_merge: true - allow_merge_commit: false - allow_rebase_merge: true -labels: - # Priority labels - - 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..." - - # Type labels - - name: "Type: Bug" - color: ee0701 - description: "Inconsistencies or issues which will cause a problem for users or implementors." - - name: "Type: Documentation" - color: 0052cc - description: "Solely about the documentation of the project." - - name: "Type: Enhancement" - color: 1d76db - description: "Enhancement of the code, not introducing new features." - - name: "Type: Feature" - color: 0e8a16 - description: "New features or options." - - name: "Type: Support" - color: 5319e7 - description: "Marks an issue as a support ticket." - - name: "Type: Discussion" - color: d4c5f9 - description: "Marks an issue as a generic discussion ticket." - - name: "Type: Maintenance" - color: 2af79e - description: "Generic Maintenance tasks, e.g., package updates." - - # Additional markers - - name: "Security" - color: ee0701 - description: "Marks a security issue that needs to be resolved asap." - - name: "Idea" - color: fef2c0 - description: "Marks an idea, which might be excepted and implemented." - - name: "Incomplete" - color: fef2c0 - description: "Marks a PR or issue that is missing information." - - name: "Pull request" - color: fbca04 - description: "There is an PR opened for this issue." - - name: "Accepted" - color: c2e0c6 - description: "This issue or PR has been accepted." - - name: "Declined" - color: f9d0c4 - description: "This issue or PR has been declined." - - name: "Potential duplicate" - color: e6e6e6 - description: "This issue has been automatically marked as a potential duplicate." - - # Ongoing Status labels - - name: "Status: Triage" - color: fbca04 - description: "This issue needs to be triaged." - - name: "Status: On hold" - color: cccccc - description: "Issue or PR that has been placed on hold for now." - - name: "Status: In progress" - color: fbca04 - description: "Issue is currently being resolved by a developer." - - name: "Status: Stale" - color: fef2c0 - description: "There has not been activity on this issue or PR for quite some time." - - name: "Status: Awaiting response" - color: fef2c0 - description: "Issue or PR awaits response from the creator." - - name: "Status: Blocked" - color: fef2c0 - description: "Progress on this issue is currently not possible." - - # Closing status labels - - name: "Closed: Known limitation" - color: e6e6e6 - description: "Issue is closed, it is a known limitation." - - name: "Closed: Expected behavior" - color: e6e6e6 - description: "Issues is closed, it is expected behavior." - - name: "Closed: Duplicate" - color: e6e6e6 - description: "Issue is closed, duplicate of an existing issue." - - name: "Closed: Invalid" - color: e6e6e6 - description: "Issue is closed, marked as not a valid issue (e.g., an user error)." - - name: "Closed: Wrong repository" - color: e6e6e6 - description: "Issue is closed, was created in the wrong repository." - - name: "Closed: Won't Fix" - color: e6e6e6 - description: "Issue is closed, it won't be fixed." - - name: "Closed: Done" - color: c2e0c6 - description: "Issue closed, work on this issue has been marked complete." - - # Others - - 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 - -branches: - - name: master - protection: - required_pull_request_reviews: - # required_approving_review_count: 1 - dismiss_stale_reviews: true - require_code_owner_reviews: true - dismissal_restrictions: - users: [] - teams: - - Admins - - Masters - required_status_checks: - strict: false - contexts: [] - enforce_admins: false - restrictions: - users: [] - teams: - - Admins - - Masters diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 36938bb..0000000 --- a/.github/stale.yml +++ /dev/null @@ -1,61 +0,0 @@ ---- -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 60 - -# Number of days of inactivity before a stale Issue or Pull Request is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: 7 - -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - "Status: On hold" - - "Status: In progress" - - "Status: Awaiting response" - - "Status: Blocked" - - "Idea" - - "Security" - -# Set to true to ignore issues in a project (defaults to false) -exemptProjects: false - -# Set to true to ignore issues in a milestone (defaults to false) -exemptMilestones: false - -# Label to use when marking as stale -staleLabel: "Status: Stale" - -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. - -# Comment to post when removing the stale label. -# unmarkComment: > -# Your comment here. -unmarkComment: false - -# Comment to post when closing a stale Issue or Pull Request. -# closeComment: > -# Your comment here. -closeComment: false - -# Limit the number of actions per hour, from 1-30. Default is 30 -limitPerRun: 30 - -# Limit to only `issues` or `pulls` -only: issues - -# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': -# pulls: -# daysUntilStale: 30 -# markComment: > -# This pull request has been automatically marked as stale because it has not had -# recent activity. It will be closed if no further activity occurs. Thank you -# for your contributions. - -# issues: -# exemptLabels: -# - confirmed diff --git a/.github/support.yml b/.github/support.yml deleted file mode 100644 index 27e688f..0000000 --- a/.github/support.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Configuration for support-requests - https://github.com/dessant/support-requests - -# Label used to mark issues as support requests -supportLabel: "Type: Support" - -# Comment to post on issues marked as support requests. Add a link -# to a support page, or set to `false` to disable -supportComment: > - :wave: We use the issue tracker exclusively for bug reports and feature requests. - However, this issue appears to be a support request. Please use our - support channels to get help with the project. - - Head over to the - [Home Assistant community forum](https://community.home-assistant.io/?u=frenck) - or join our [Discord](https://discord.me/hassioaddons) chat. - -# Close issues marked as support requests -close: true - -# Lock issues marked as support requests -lock: false diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..d3c4bbf --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,190 @@ +--- +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 }} + 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.2 + 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 QEMU User Static for aarch64 + if: ${{ matrix.architecture == 'aarch64' }} + run: | + curl -L -s \ + "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-aarch64-static.tar.gz" | \ + tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" + - name: πŸ— Set up QEMU User Static for armhf/armv7 + if: ${{ matrix.architecture == 'armhf' || matrix.architecture == 'armv7' }} + run: | + curl -L -s \ + "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-arm-static.tar.gz" | \ + tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" + - 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_FROM=${{ steps.flags.outputs.from }} + BUILD_REF=${{ github.sha }} + BUILD_REPOSITORY=${{ github.repository }} + BUILD_VERSION=dev diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..df9d954 --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,140 @@ +--- +name: Deploy + +# yamllint disable-line rule:truthy +on: + release: + types: + - published + workflow_run: + workflows: ["CI"] + branches: [main] + types: + - completed + +jobs: + information: + if: | + github.event_name == 'release' + || ( + github.event_name == 'workflow_run' + && github.event.workflow_run.conclusion == 'success' + ) + name: ℹ️ Gather add-on information + runs-on: ubuntu-latest + outputs: + architectures: ${{ steps.information.outputs.architectures }} + build: ${{ steps.information.outputs.build }} + environment: ${{ steps.release.outputs.environment }} + slug: ${{ steps.information.outputs.slug }} + target: ${{ steps.information.outputs.target }} + version: ${{ steps.release.outputs.version }} + 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 + - name: ℹ️ Gather version and environment + id: release + run: | + sha="${{ github.sha }}" + environment="edge" + version="${sha:0:7}" + if [[ "${{ github.event_name }}" = "release" ]]; then + version="${{ github.event.release.tag_name }}" + version="${version,,}" + version="${version#v}" + environment="stable" + if [[ "${{ github.event.release.prerelease }}" = "true" ]]; then + environment="beta" + fi + fi + + echo "::set-output name=environment::${environment}" + echo "::set-output name=version::${version}" + + deploy: + name: πŸ‘· Build & Deploy ${{ matrix.architecture }} + needs: information + 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 QEMU User Static for aarch64 + if: ${{ matrix.architecture == 'aarch64' }} + run: | + curl -L -s \ + "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-aarch64-static.tar.gz" | \ + tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" + - name: πŸ— Set up QEMU User Static for armhf/armv7 + if: ${{ matrix.architecture == 'armhf' || matrix.architecture == 'armv7' }} + run: | + curl -L -s \ + "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-arm-static.tar.gz" | \ + tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" + - 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: πŸ— Login to GitHub Container Registry + uses: docker/login-action@v1.8.0 + with: + registry: ghcr.io + username: ${{ secrets.GHCR_USERNAME }} + password: ${{ secrets.GHCR_PASSWORD }} + - name: πŸš€ Build and push + uses: docker/build-push-action@v2.2.2 + with: + push: true + # yamllint disable rule:line-length + tags: | + ghcr.io/hassio-addons/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:${{ needs.information.outputs.environment }} + ghcr.io/hassio-addons/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:${{ needs.information.outputs.version }} + # yamllint enable rule:line-length + 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_FROM=${{ steps.flags.outputs.from }} + BUILD_REF=${{ github.sha }} + BUILD_REPOSITORY=${{ github.repository }} + BUILD_VERSION=${{ needs.information.outputs.version }} diff --git a/.github/workflows/labels.yaml b/.github/workflows/labels.yaml new file mode 100644 index 0000000..5a6ab37 --- /dev/null +++ b/.github/workflows/labels.yaml @@ -0,0 +1,22 @@ +--- +name: Sync labels + +# yamllint disable-line rule:truthy +on: + push: + branches: + - main + paths: + - .github/labels.yml + +jobs: + labels: + name: ♻️ Sync labels + runs-on: ubuntu-latest + steps: + - name: ‡️ Check out code from GitHub + uses: actions/checkout@v2.3.4 + - name: πŸš€ Run Label Syncer + uses: micnncim/action-label-syncer@v1.2.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lock.yaml b/.github/workflows/lock.yaml new file mode 100644 index 0000000..ff147a2 --- /dev/null +++ b/.github/workflows/lock.yaml @@ -0,0 +1,21 @@ +--- +name: Lock + +# yamllint disable-line rule:truthy +on: + schedule: + - cron: "0 9 * * *" + workflow_dispatch: + +jobs: + lock: + name: πŸ”’ Lock closed issues and PRs + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v2.0.3 + with: + github-token: ${{ github.token }} + issue-lock-inactive-days: "30" + issue-lock-reason: "" + pr-lock-inactive-days: "1" + pr-lock-reason: "" diff --git a/.github/workflows/release-drafter.yaml b/.github/workflows/release-drafter.yaml new file mode 100644 index 0000000..25f9856 --- /dev/null +++ b/.github/workflows/release-drafter.yaml @@ -0,0 +1,18 @@ +--- +name: Release Drafter + +# yamllint disable-line rule:truthy +on: + push: + branches: + - main + +jobs: + update_release_draft: + name: ✏️ Draft release + runs-on: ubuntu-latest + steps: + - name: πŸš€ Run Release Drafter + uses: release-drafter/release-drafter@v5.13.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000..08b39ae --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,40 @@ +--- +name: Stale + +# yamllint disable-line rule:truthy +on: + schedule: + - cron: "0 8 * * *" + workflow_dispatch: + +jobs: + stale: + name: 🧹 Clean up stale issues and PRs + runs-on: ubuntu-latest + steps: + - name: πŸš€ Run stale + uses: actions/stale@v3.0.14 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-stale: 30 + days-before-close: 7 + remove-stale-when-updated: true + stale-issue-label: "stale" + exempt-issue-labels: "no-stale,help-wanted" + stale-issue-message: > + There hasn't been any activity on this issue recently, so we + clean up some of the older and inactive issues. + + Please make sure to update to the latest version and + check if that solves the issue. Let us know if that works for you + by leaving a comment πŸ‘ + + This issue has now been marked as stale and will be closed if no + further activity occurs. Thanks! + stale-pr-label: "stale" + exempt-pr-labels: "no-stale" + stale-pr-message: > + There hasn't been any activity on this pull request recently. This + pull request has been automatically marked as stale because of that + and will be closed if no further activity occurs within 7 days. + Thank you for your contributions. From 231ae33dcab9f5caf02ef0863c4e7f96844bf03e Mon Sep 17 00:00:00 2001 From: sinclairpaul Date: Wed, 20 Jan 2021 01:27:38 +0000 Subject: [PATCH 02/12] Prettified Code! --- bookstack/DOCS.md | 10 +++++----- renovate.json | 8 ++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/bookstack/DOCS.md b/bookstack/DOCS.md index 7426dab..6e84b0b 100644 --- a/bookstack/DOCS.md +++ b/bookstack/DOCS.md @@ -39,7 +39,7 @@ dealing with an unknown issue. Possible values are: - `debug`: Shows detailed debug information. - `info`: Normal (usually) interesting events. - `warning`: Exceptional occurrences that are not errors. -- `error`: Runtime errors that do not require immediate action. +- `error`: Runtime errors that do not require immediate action. - `fatal`: Something went terribly wrong. Add-on becomes unusable. Please note that each level automatically includes log messages from a @@ -110,12 +110,12 @@ functionality. The format of the log is based on [Keep a Changelog][keepchangelog]. Releases are based on [Semantic Versioning][semver], and use the format -of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented +of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented based on the following: -- ``MAJOR``: Incompatible or major changes. -- ``MINOR``: Backwards-compatible new features and enhancements. -- ``PATCH``: Backwards-compatible bugfixes and package updates. +- `MAJOR`: Incompatible or major changes. +- `MINOR`: Backwards-compatible new features and enhancements. +- `PATCH`: Backwards-compatible bugfixes and package updates. ## Support diff --git a/renovate.json b/renovate.json index 58ca74e..c4cd058 100644 --- a/renovate.json +++ b/renovate.json @@ -1,11 +1,7 @@ { - "extends": [ - "config:base" - ], + "extends": ["config:base"], "commitMessageAction": "Updates", "commitMessageTopic": "{{depName}}", "commitMessagePrefix": ":arrow_up:", - "labels": [ - "Type: Maintenance" - ] + "labels": ["Type: Maintenance"] } From 7104175f70948cccbc59d01aeaa81b0b6057433a Mon Sep 17 00:00:00 2001 From: Paul Sinclair <24625998+sinclairpaul@users.noreply.github.com> Date: Tue, 19 Jan 2021 20:29:53 -0500 Subject: [PATCH 03/12] Update .github/CODEOWNERS Co-authored-by: Franck Nijhof --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9e0a25e..771559a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -.github/* @sinclairpaul +.github/* @frenck From 3d7aa4c7c7152c079045a5f06a8fdc0b21ea0a33 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:34:24 -0500 Subject: [PATCH 04/12] =?UTF-8?q?=F0=9F=94=A8=20Review=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 --- renovate.json | 7 ------- 2 files changed, 10 deletions(-) delete mode 100644 .gitattributes delete mode 100644 renovate.json diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index fa967b9..0000000 --- a/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -* text=auto eol=lf -*. eol=lf -*.sh eol=lf \ No newline at end of file diff --git a/renovate.json b/renovate.json deleted file mode 100644 index c4cd058..0000000 --- a/renovate.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": ["config:base"], - "commitMessageAction": "Updates", - "commitMessageTopic": "{{depName}}", - "commitMessagePrefix": ":arrow_up:", - "labels": ["Type: Maintenance"] -} From b11377e9892fb19b9190670ad41d79db55867534 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:35:36 -0500 Subject: [PATCH 05/12] =?UTF-8?q?=F0=9F=94=A8=20Doh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e69de29..0000000 From e442904f0a400ac2de06608250681bc99a3d9d33 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 20 Jan 2021 02:37:23 +0100 Subject: [PATCH 06/12] Update linter to prevent issues --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d3c4bbf..9d30bc4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,7 +36,7 @@ jobs: - name: ‡️ Check out code from GitHub uses: actions/checkout@v2.3.4 - name: πŸš€ Run Add-on Lint - uses: frenck/action-addon-linter@v1.2 + uses: frenck/action-addon-linter@v1.3.0 with: community: true path: "./${{ needs.information.outputs.target }}" From 2e632504ff1ff72a15b89be20744ef40d8e68411 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:44:03 -0500 Subject: [PATCH 07/12] =?UTF-8?q?=E2=9C=8F=20Fix=20linting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bookstack/build.json | 2 -- bookstack/config.json | 3 --- 2 files changed, 5 deletions(-) diff --git a/bookstack/build.json b/bookstack/build.json index 1afb131..d435ef2 100644 --- a/bookstack/build.json +++ b/bookstack/build.json @@ -1,5 +1,4 @@ { - "squash": false, "build_from": { "aarch64": "hassioaddons/base-aarch64:8.0.6", "amd64": "hassioaddons/base-amd64:8.0.6", @@ -7,5 +6,4 @@ "armv7": "hassioaddons/base-armv7:8.0.6", "i386": "hassioaddons/base-i386:8.0.6" }, - "args": {} } diff --git a/bookstack/config.json b/bookstack/config.json index 5c1dd92..b46ef70 100644 --- a/bookstack/config.json +++ b/bookstack/config.json @@ -6,11 +6,8 @@ "url": "https://github.com/hassio-addons/addon-bookstack", "webui": "[PROTO:ssl]://[HOST]:[PORT:80]", "init": false, - "startup": "application", "arch": ["aarch64", "amd64", "armhf", "armv7", "i386"], - "boot": "auto", "hassio_api": true, - "hassio_role": "default", "services": ["mysql:want"], "map": ["ssl"], "ports": { From 4c03eb2bb39b927bf7135cdca76d9f1a62b3e37e Mon Sep 17 00:00:00 2001 From: sinclairpaul Date: Wed, 20 Jan 2021 01:45:06 +0000 Subject: [PATCH 08/12] Prettified Code! --- bookstack/build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookstack/build.json b/bookstack/build.json index d435ef2..56b0309 100644 --- a/bookstack/build.json +++ b/bookstack/build.json @@ -5,5 +5,5 @@ "armhf": "hassioaddons/base-armhf:8.0.6", "armv7": "hassioaddons/base-armv7:8.0.6", "i386": "hassioaddons/base-i386:8.0.6" - }, + } } From b7de0deb30878ccbb859c716b86625e20f452132 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:47:37 -0500 Subject: [PATCH 09/12] =?UTF-8?q?=E2=9C=8F=20Fix=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bookstack/build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookstack/build.json b/bookstack/build.json index d435ef2..56b0309 100644 --- a/bookstack/build.json +++ b/bookstack/build.json @@ -5,5 +5,5 @@ "armhf": "hassioaddons/base-armhf:8.0.6", "armv7": "hassioaddons/base-armv7:8.0.6", "i386": "hassioaddons/base-i386:8.0.6" - }, + } } From 8e01e112e9e30ebdf6da27fae6f45a8e46e0f409 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:48:04 -0500 Subject: [PATCH 10/12] =?UTF-8?q?=F0=9F=94=A8=20Add=20back=20gitattributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/.gitattributes | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/.gitattributes diff --git a/.github/.gitattributes b/.github/.gitattributes new file mode 100644 index 0000000..b02a657 --- /dev/null +++ b/.github/.gitattributes @@ -0,0 +1,3 @@ +* text=auto eol=lf +*. eol=lf +*.sh eol=lf From 97e753babc99509e40f98fcecc0074bd8d1404b1 Mon Sep 17 00:00:00 2001 From: Paul Sinclair Date: Tue, 19 Jan 2021 20:57:33 -0500 Subject: [PATCH 11/12] =?UTF-8?q?=F0=9F=94=A8=20Update=20Ci=20to=20correct?= =?UTF-8?q?=20actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yaml | 20 +++----- .github/workflows/deploy.yaml | 90 ++++++++++++++++++++++++++++++----- 2 files changed, 84 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9d30bc4..7caae0e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,8 @@ jobs: outputs: architectures: ${{ steps.information.outputs.architectures }} build: ${{ steps.information.outputs.build }} + description: ${{ steps.information.output.description }} + name: ${{ steps.information.outputs.name }} slug: ${{ steps.information.outputs.slug }} target: ${{ steps.information.outputs.target }} steps: @@ -36,7 +38,7 @@ jobs: - name: ‡️ Check out code from GitHub uses: actions/checkout@v2.3.4 - name: πŸš€ Run Add-on Lint - uses: frenck/action-addon-linter@v1.3.0 + uses: frenck/action-addon-linter@v1.2.3 with: community: true path: "./${{ needs.information.outputs.target }}" @@ -135,18 +137,6 @@ jobs: docker-${{ github.ref }}-${{ matrix.architecture }} - name: πŸ— Set up QEMU uses: docker/setup-qemu-action@v1.0.1 - - name: πŸ— Set up QEMU User Static for aarch64 - if: ${{ matrix.architecture == 'aarch64' }} - run: | - curl -L -s \ - "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-aarch64-static.tar.gz" | \ - tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" - - name: πŸ— Set up QEMU User Static for armhf/armv7 - if: ${{ matrix.architecture == 'armhf' || matrix.architecture == 'armv7' }} - run: | - curl -L -s \ - "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-arm-static.tar.gz" | \ - tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" - name: πŸ— Set up Docker Buildx uses: docker/setup-buildx-action@v1.1.1 - name: ℹ️ Compose build flags @@ -184,7 +174,9 @@ jobs: 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=dev + BUILD_VERSION=edge diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index df9d954..44319e3 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -25,7 +25,9 @@ jobs: outputs: architectures: ${{ steps.information.outputs.architectures }} build: ${{ steps.information.outputs.build }} + description: ${{ steps.information.output.description }} environment: ${{ steps.release.outputs.environment }} + name: ${{ steps.information.outputs.name }} slug: ${{ steps.information.outputs.slug }} target: ${{ steps.information.outputs.target }} version: ${{ steps.release.outputs.version }} @@ -74,18 +76,6 @@ jobs: docker-${{ github.ref }}-${{ matrix.architecture }} - name: πŸ— Set up QEMU uses: docker/setup-qemu-action@v1.0.1 - - name: πŸ— Set up QEMU User Static for aarch64 - if: ${{ matrix.architecture == 'aarch64' }} - run: | - curl -L -s \ - "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-aarch64-static.tar.gz" | \ - tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" - - name: πŸ— Set up QEMU User Static for armhf/armv7 - if: ${{ matrix.architecture == 'armhf' || matrix.architecture == 'armv7' }} - run: | - curl -L -s \ - "https://github.com/hassio-addons/qemu-user-static/releases/download/v5.0.0/qemu-arm-static.tar.gz" | \ - tar zxvf - -C "${{ needs.information.outputs.target }}/rootfs/usr/bin/" - name: πŸ— Set up Docker Buildx uses: docker/setup-buildx-action@v1.1.1 - name: ℹ️ Compose build flags @@ -134,7 +124,83 @@ jobs: 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=${{ needs.information.outputs.version }} + + publish-edge: + name: πŸ“’ Publish to edge repository + if: needs.information.outputs.environment == 'edge' + needs: + - information + - deploy + environment: + name: ${{ needs.information.outputs.environment }} + runs-on: ubuntu-latest + steps: + - name: πŸš€ Dispatch repository updater update signal + uses: peter-evans/repository-dispatch@v1.1.3 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: hassio-addons/repository-edge + event-type: update + client-payload: > + { + "addon": "${{ needs.information.outputs.slug }}", + "name": "${{ needs.information.outputs.name }}", + "repository": "${{ github.repository }}", + "version": "${{ needs.information.outputs.version }}" + } + + publish-beta: + name: πŸ“’ Publish to beta repository + if: | + needs.information.outputs.environment == 'beta' || + needs.information.outputs.environment == 'stable' + needs: + - information + - deploy + environment: + name: ${{ needs.information.outputs.environment }} + runs-on: ubuntu-latest + steps: + - name: πŸš€ Dispatch repository updater update signal + uses: peter-evans/repository-dispatch@v1.1.3 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: hassio-addons/repository-beta + event-type: update + client-payload: > + { + "addon": "${{ needs.information.outputs.slug }}", + "name": "${{ needs.information.outputs.name }}", + "repository": "${{ github.repository }}", + "version": "${{ github.event.release.tag_name }}" + } + + publish-stable: + name: πŸ“’ Publish to stable repository + if: needs.information.outputs.environment == 'stable' + needs: + - information + - deploy + environment: + name: ${{ needs.information.outputs.environment }} + runs-on: ubuntu-latest + steps: + - name: πŸš€ Dispatch repository updater update signal + uses: peter-evans/repository-dispatch@v1.1.3 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: hassio-addons/repository + event-type: update + client-payload: > + { + "addon": "${{ needs.information.outputs.slug }}", + "name": "${{ needs.information.outputs.name }}", + "repository": "${{ github.repository }}", + "version": "${{ github.event.release.tag_name }}" + } From ba54e8a79298a380dbb3716c978d129b27cee295 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 20 Jan 2021 03:01:42 +0100 Subject: [PATCH 12/12] Update .github/workflows/ci.yaml --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7caae0e..2afaf14 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,7 +38,7 @@ jobs: - name: ‡️ Check out code from GitHub uses: actions/checkout@v2.3.4 - name: πŸš€ Run Add-on Lint - uses: frenck/action-addon-linter@v1.2.3 + uses: frenck/action-addon-linter@v1.3.0 with: community: true path: "./${{ needs.information.outputs.target }}"