Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 011abf2aa5 | |||
| 2fdd760070 | |||
| a638507b2b | |||
| ad2e249a87 | |||
| 712841f292 | |||
| 5514b1bb3d | |||
| 9d9f43814d | |||
| 78ece5ef00 | |||
| 4bbb4ec7fd | |||
| 4482cc29a3 | |||
| 4647ec71d8 | |||
| 11fab3ffba | |||
| 1e1ee65a0b | |||
| 427fb99318 | |||
| 2cc545165a | |||
| 34b141973a | |||
| 770fab2e33 | |||
| e230b14b90 | |||
| 76e797a304 | |||
| 65bff1e102 | |||
| 561f977773 | |||
| aab386938a | |||
| 2f9c450c12 | |||
| 1b22d951c6 | |||
| 3a83f7d074 | |||
| 4480cef07d | |||
| bae0276dcc | |||
| e24900faff | |||
| fe0d98c0c4 | |||
| b49e196d21 | |||
| 6bc51936c2 | |||
| cbe33305ea | |||
| 7852a41fa2 | |||
| f31807f229 | |||
| 35bb849461 | |||
| 18fad375cf | |||
| b685fe81ef | |||
| 17b7944401 | |||
| 283f56101a | |||
| 25997803ed | |||
| 0359de9311 | |||
| 5cec577c38 | |||
| 4cf0838ca2 | |||
| db2adc5b48 | |||
| f67466b85c | |||
| 02213d575a | |||
| 3593c2375f | |||
| 64a8ef45fa | |||
| 40ab6e1ec2 | |||
| d9a95e512f | |||
| 6c0b81ff4e | |||
| c8e54c49ed | |||
| 8940d5f907 | |||
| 28fce7e021 | |||
| 855210ce59 |
@@ -1,85 +0,0 @@
|
||||
---
|
||||
- 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."
|
||||
+2
-191
@@ -12,194 +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@v2.3.5
|
||||
- name: 🚀 Run add-on information action
|
||||
id: information
|
||||
uses: frenck/action-addon-information@v1.3
|
||||
|
||||
lint-addon:
|
||||
name: Lint Add-on
|
||||
needs:
|
||||
- information
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v2.3.5
|
||||
- name: 🚀 Run Add-on Lint
|
||||
uses: frenck/action-addon-linter@v2.5
|
||||
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.5
|
||||
- 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@v2.3.5
|
||||
- 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.5
|
||||
- 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.5
|
||||
- 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.5
|
||||
- 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.5
|
||||
- name: 🚀 Run Prettier
|
||||
uses: creyD/prettier_action@v4.0
|
||||
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.5
|
||||
- name: 🏗 Set up build cache
|
||||
id: cache
|
||||
uses: actions/cache@v2.1.6
|
||||
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: 🏗 Set up CodeNotary
|
||||
run: bash <(curl https://getvcn.codenotary.com -L)
|
||||
- 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: ⤵️ Download base image
|
||||
run: docker pull "${{ steps.flags.outputs.from }}"
|
||||
- name: ✅ Verify authenticity of base image
|
||||
run: |
|
||||
vcn authenticate \
|
||||
"docker://${{ steps.flags.outputs.from }}"
|
||||
vcn authenticate \
|
||||
--output json \
|
||||
--signerID 0x03e406879fd89e52f38f4aab0061266d1183980a \
|
||||
"docker://${{ steps.flags.outputs.from }}" \
|
||||
| jq \
|
||||
--exit-status \
|
||||
'.verification.status == 0'
|
||||
- name: 🚀 Build
|
||||
uses: docker/build-push-action@v2.7.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
|
||||
|
||||
@@ -33,10 +33,10 @@ jobs:
|
||||
version: ${{ steps.release.outputs.version }}
|
||||
steps:
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v2.3.5
|
||||
uses: actions/checkout@v3
|
||||
- name: 🚀 Run add-on information action
|
||||
id: information
|
||||
uses: frenck/action-addon-information@v1.3
|
||||
uses: frenck/action-addon-information@v1.4
|
||||
- name: ℹ️ Gather version and environment
|
||||
id: release
|
||||
run: |
|
||||
@@ -53,8 +53,8 @@ jobs:
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::set-output name=environment::${environment}"
|
||||
echo "::set-output name=version::${version}"
|
||||
echo "environment=${environment}" >> "$GITHUB_OUTPUT"
|
||||
echo "version=${version}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
deploy:
|
||||
name: 👷 Build & Deploy ${{ matrix.architecture }}
|
||||
@@ -69,63 +69,50 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v2.3.5
|
||||
uses: actions/checkout@v3
|
||||
- name: 🏗 Set up build cache
|
||||
id: cache
|
||||
uses: actions/cache@v2.1.6
|
||||
uses: actions/cache@v3.2.6
|
||||
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
|
||||
uses: docker/setup-qemu-action@v2.1.0
|
||||
- name: 🏗 Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.6.0
|
||||
- name: 🏗 Set up CodeNotary
|
||||
run: bash <(curl https://getvcn.codenotary.com -L)
|
||||
uses: docker/setup-buildx-action@v2.4.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}"
|
||||
echo "date=$(date +"%Y-%m-%dT%H:%M:%SZ")" >> "$GITHUB_OUTPUT"
|
||||
from=$(yq --no-colors eval ".build_from.${{ matrix.architecture }}" "${{ needs.information.outputs.build }}")
|
||||
echo "from=${from}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
if [[ "${{ matrix.architecture}}" = "amd64" ]]; then
|
||||
echo "::set-output name=platform::linux/amd64"
|
||||
echo "platform=linux/amd64" >> "$GITHUB_OUTPUT"
|
||||
elif [[ "${{ matrix.architecture }}" = "i386" ]]; then
|
||||
echo "::set-output name=platform::linux/386"
|
||||
echo "platform=linux/386" >> "$GITHUB_OUTPUT"
|
||||
elif [[ "${{ matrix.architecture }}" = "armhf" ]]; then
|
||||
echo "::set-output name=platform::linux/arm/v6"
|
||||
echo "platform=linux/arm/v6" >> "$GITHUB_OUTPUT"
|
||||
elif [[ "${{ matrix.architecture }}" = "armv7" ]]; then
|
||||
echo "::set-output name=platform::linux/arm/v7"
|
||||
echo "platform=linux/arm/v7" >> "$GITHUB_OUTPUT"
|
||||
elif [[ "${{ matrix.architecture }}" = "aarch64" ]]; then
|
||||
echo "::set-output name=platform::linux/arm64/v8"
|
||||
echo "platform=linux/arm64/v8" >> "$GITHUB_OUTPUT"
|
||||
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.10.0
|
||||
uses: docker/login-action@v2.1.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: ⤵️ Download base image
|
||||
run: docker pull "${{ steps.flags.outputs.from }}"
|
||||
- name: ✅ Verify authenticity of base image
|
||||
run: |
|
||||
vcn authenticate \
|
||||
"docker://${{ steps.flags.outputs.from }}"
|
||||
vcn authenticate \
|
||||
--output json \
|
||||
--signerID 0x03e406879fd89e52f38f4aab0061266d1183980a \
|
||||
"docker://${{ steps.flags.outputs.from }}" \
|
||||
| jq \
|
||||
--exit-status \
|
||||
'.verification.status == 0'
|
||||
- name: 🚀 Build
|
||||
uses: docker/build-push-action@v2.7.0
|
||||
uses: docker/build-push-action@v4.0.0
|
||||
with:
|
||||
load: true
|
||||
# yamllint disable rule:line-length
|
||||
@@ -157,26 +144,6 @@ jobs:
|
||||
run: |
|
||||
rm -rf /tmp/.docker-cache
|
||||
mv /tmp/.docker-cache-new /tmp/.docker-cache
|
||||
- name: 🔏 Notarize
|
||||
# yamllint disable rule:line-length
|
||||
run: |
|
||||
if vcn authenticate \
|
||||
--output json \
|
||||
"docker://ghcr.io/gauthamvarmak/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:${{ needs.information.outputs.version }}" \
|
||||
| jq \
|
||||
--exit-status \
|
||||
'.verification.status != 0';
|
||||
then
|
||||
vcn login
|
||||
vcn notarize \
|
||||
--public \
|
||||
"docker://ghcr.io/gauthamvarmak/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:${{ needs.information.outputs.version }}"
|
||||
fi
|
||||
env:
|
||||
VCN_USER: ${{ secrets.VCN_USER }}
|
||||
VCN_PASSWORD: ${{ secrets.VCN_PASSWORD }}
|
||||
VCN_NOTARIZATION_PASSWORD: ${{ secrets.VCN_NOTARIZATION_PASSWORD }}
|
||||
VCN_OTP_EMPTY: true
|
||||
- name: 🚀 Push
|
||||
# yamllint disable rule:line-length
|
||||
run: |
|
||||
@@ -196,10 +163,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🚀 Dispatch repository updater update signal
|
||||
uses: peter-evans/repository-dispatch@v1.1.3
|
||||
uses: peter-evans/repository-dispatch@v2.1.1
|
||||
with:
|
||||
token: ${{ secrets.DISPATCH_TOKEN }}
|
||||
repository: GauthamVarmaK/hassio-addons
|
||||
repository: ${{ github.repository_owner }}/hassio-addons
|
||||
event-type: update
|
||||
client-payload: >
|
||||
{
|
||||
|
||||
@@ -3,20 +3,10 @@ name: Sync labels
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- .github/labels.yml
|
||||
schedule:
|
||||
- cron: "34 5 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
labels:
|
||||
name: ♻️ Sync labels
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v2.3.5
|
||||
- name: 🚀 Run Label Syncer
|
||||
uses: micnncim/action-label-syncer@v1.3.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
workflows:
|
||||
uses: hassio-addons/workflows/.github/workflows/labels.yaml@main
|
||||
|
||||
@@ -8,14 +8,5 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
name: 🔒 Lock closed issues and PRs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v3
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-lock-inactive-days: "30"
|
||||
issue-lock-reason: ""
|
||||
pr-lock-inactive-days: "1"
|
||||
pr-lock-reason: ""
|
||||
workflows:
|
||||
uses: hassio-addons/workflows/.github/workflows/lock.yaml@main
|
||||
|
||||
@@ -4,19 +4,12 @@ name: PR Labels
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, labeled, unlabeled, synchronize]
|
||||
types:
|
||||
- opened
|
||||
- labeled
|
||||
- unlabeled
|
||||
- synchronize
|
||||
|
||||
jobs:
|
||||
pr_labels:
|
||||
name: Verify
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🏷 Verify PR has a valid label
|
||||
uses: jesusvasquez333/verify-pr-label-action@v1.4.0
|
||||
with:
|
||||
pull-request-number: "${{ github.event.pull_request.number }}"
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
valid-labels: >-
|
||||
breaking-change, bugfix, documentation, enhancement, refactor,
|
||||
performance, new-feature, maintenance, ci, dependencies
|
||||
disable-reviews: true
|
||||
workflows:
|
||||
uses: hassio-addons/workflows/.github/workflows/pr-labels.yaml@main
|
||||
|
||||
@@ -8,11 +8,5 @@ on:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
update_release_draft:
|
||||
name: ✏️ Draft release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🚀 Run Release Drafter
|
||||
uses: release-drafter/release-drafter@v5.15.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
workflows:
|
||||
uses: hassio-addons/workflows/.github/workflows/release-drafter.yaml@main
|
||||
|
||||
@@ -8,33 +8,5 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
name: 🧹 Clean up stale issues and PRs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🚀 Run stale
|
||||
uses: actions/stale@v4
|
||||
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.
|
||||
workflows:
|
||||
uses: hassio-addons/workflows/.github/workflows/stale.yaml@main
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# MIT License
|
||||
|
||||
Copyright (c) 2021-2021 Gautham varma K
|
||||
Copyright (c) 2021-2023 Gautham varma K
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -65,7 +65,7 @@ check [the contributor's page][contributors].
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 GauthamVarmaK
|
||||
Copyright (c) 2021-2023 GauthamVarmaK
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -96,7 +96,7 @@ SOFTWARE.
|
||||
[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg
|
||||
[issue]: https://github.com/GauthamVarmaK/addon-tvheadend/issues
|
||||
[license-shield]: https://img.shields.io/github/license/GauthamVarmaK/addon-tvheadend.svg
|
||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
|
||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
|
||||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||
[releases-shield]: https://img.shields.io/github/release/GauthamVarmaK/addon-tvheadend.svg
|
||||
[releases]: https://github.com/GauthamVarmaK/addon-tvheadend/releases
|
||||
|
||||
@@ -21,7 +21,7 @@ Have included the following along with TVHeadend:
|
||||
|
||||
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
||||
[forum]: https://community.home-assistant.io/u/gauthamvarmak
|
||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
|
||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
|
||||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
|
||||
[release]: {{ repo }}/tree/{{ version }}
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ This has been possible thanks to the community add-ons initiative by [Frenck][fr
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 GauthamVarmaK
|
||||
Copyright (c) 2021-2023 GauthamVarmaK
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -7,16 +7,16 @@ COPY requirements.txt /tmp/
|
||||
RUN \
|
||||
apk update \
|
||||
&& apk add --no-cache --virtual .build-deps \
|
||||
musl-dev=1.2.2-r3 \
|
||||
gcc=10.3.1_git20210424-r2 \
|
||||
g++=10.3.1_git20210424-r2 \
|
||||
libxml2-dev=2.9.12-r1 \
|
||||
libxslt-dev=1.1.34-r1 \
|
||||
python3-dev=3.9.5-r1 \
|
||||
musl-dev=1.2.3-r4 \
|
||||
gcc=12.2.1_git20220924-r4 \
|
||||
g++=12.2.1_git20220924-r4 \
|
||||
libxml2-dev=2.10.3-r1 \
|
||||
libxslt-dev=1.1.37-r0 \
|
||||
python3-dev=3.10.10-r0 \
|
||||
&& apk add --no-cache \
|
||||
tvheadend=4.2.8-r3 \
|
||||
py3-pip=20.3.4-r1 \
|
||||
libxslt=1.1.34-r1 \
|
||||
tvheadend=4.2.8-r6 \
|
||||
py3-pip=22.3.1-r1 \
|
||||
libxslt=1.1.37-r0 \
|
||||
&& pip3 install \
|
||||
--no-cache-dir \
|
||||
--prefer-binary \
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"build_from": {
|
||||
"aarch64": "ghcr.io/hassio-addons/base/aarch64:10.1.1",
|
||||
"amd64": "ghcr.io/hassio-addons/base/amd64:10.1.1",
|
||||
"armhf": "ghcr.io/hassio-addons/base/armhf:10.1.1",
|
||||
"armv7": "ghcr.io/hassio-addons/base/armv7:10.1.1",
|
||||
"i386": "ghcr.io/hassio-addons/base/i386:10.1.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
build_from:
|
||||
aarch64: ghcr.io/hassio-addons/base/aarch64:13.1.1
|
||||
amd64: ghcr.io/hassio-addons/base/amd64:13.1.1
|
||||
armhf: ghcr.io/hassio-addons/base/armhf:13.1.1
|
||||
armv7: ghcr.io/hassio-addons/base/armv7:13.1.1
|
||||
i386: ghcr.io/hassio-addons/base/i386:13.1.1
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"name": "TVHeadend",
|
||||
"version": "dev",
|
||||
"stage": "experimental",
|
||||
"slug": "tvheadend",
|
||||
"description": "TV streaming server and recorder.",
|
||||
"url": "https://github.com/GauthamVarmaK/addon-tvheadend",
|
||||
"arch": ["aarch64", "amd64", "armhf", "armv7", "i386"],
|
||||
"webui": "http://[HOST]:[PORT:9981]/",
|
||||
"devices": ["/dev/dvb/", "/dev/dri/"],
|
||||
"ports": {
|
||||
"9981/tcp": 9981,
|
||||
"9982/tcp": 9982
|
||||
},
|
||||
"ports_description": {
|
||||
"9981/tcp": "TVH Web Interface",
|
||||
"9982/tcp": "TVH HTSP"
|
||||
},
|
||||
"map": ["config:rw"],
|
||||
"options": {
|
||||
"system_packages": [],
|
||||
"init_commands": []
|
||||
},
|
||||
"schema": {
|
||||
"system_packages": ["str"],
|
||||
"init_commands": ["str"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: TVHeadend
|
||||
version: dev
|
||||
stage: experimental
|
||||
slug: tvheadend
|
||||
description: TV streaming server and recorder.
|
||||
url: "https://github.com/GauthamVarmaK/addon-tvheadend"
|
||||
init: false
|
||||
arch:
|
||||
- aarch64
|
||||
- amd64
|
||||
- armhf
|
||||
- armv7
|
||||
- i386
|
||||
webui: "http://[HOST]:[PORT:9981]/"
|
||||
devices:
|
||||
- /dev/dvb
|
||||
- /dev/dri
|
||||
ports:
|
||||
9981/tcp: 9981
|
||||
9982/tcp: 9982
|
||||
ports_description:
|
||||
9981/tcp: TVH Web Interface
|
||||
9982/tcp: TVH HTSP
|
||||
map:
|
||||
- "config:rw"
|
||||
options:
|
||||
system_packages: []
|
||||
init_commands: []
|
||||
schema:
|
||||
system_packages:
|
||||
- str
|
||||
init_commands:
|
||||
- str
|
||||
@@ -1,2 +1,2 @@
|
||||
setuptools==58.4.0
|
||||
streamlink==2.4.0
|
||||
setuptools==67.4.0
|
||||
streamlink==5.3.1
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#!/command/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Take down the S6 supervision tree when cron fails
|
||||
# ==============================================================================
|
||||
declare exit_code
|
||||
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
|
||||
readonly exit_code_service="${1}"
|
||||
readonly exit_code_signal="${2}"
|
||||
readonly service="cron"
|
||||
|
||||
bashio::log.info \
|
||||
"Service ${service} exited with code ${exit_code_service}" \
|
||||
"(by signal ${exit_code_signal})"
|
||||
|
||||
if [[ "${exit_code_service}" -eq 256 ]]; then
|
||||
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
|
||||
fi
|
||||
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
|
||||
elif [[ "${exit_code_service}" -ne 0 ]]; then
|
||||
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
|
||||
fi
|
||||
exec /run/s6/basedir/bin/halt
|
||||
fi
|
||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Runs the cron daemon
|
||||
@@ -0,0 +1 @@
|
||||
longrun
|
||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Executes user customizations on startup
|
||||
@@ -0,0 +1 @@
|
||||
oneshot
|
||||
@@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-customizations/run
|
||||
Regular → Executable
+4
-3
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Executes user customizations on startup
|
||||
@@ -14,9 +15,9 @@ webgrabplus_install(){
|
||||
if apk add --no-cache --virtual .build-deps git mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; then
|
||||
bashio::log.info '[Webgrab+] Installing Webgrab+.'
|
||||
cd /tmp \
|
||||
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.2.0/WebGrabPlus_V3.2_install.tar.gz \
|
||||
&& tar -zxvf WebGrabPlus_V3.2_install.tar.gz \
|
||||
&& rm WebGrabPlus_V3.2_install.tar.gz \
|
||||
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.3.0/WebGrabPlus_V3.3_install.tar.gz \
|
||||
&& tar -zxvf WebGrabPlus_V3.3_install.tar.gz \
|
||||
&& rm WebGrabPlus_V3.3_install.tar.gz \
|
||||
&& mv .wg++/ /config/tvheadend/wg++ \
|
||||
&& cd /config/tvheadend/wg++ \
|
||||
&& ./install.sh \
|
||||
@@ -0,0 +1 @@
|
||||
oneshot
|
||||
@@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-tvheadend/run
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/command/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Take down the S6 supervision tree when tvheadend fails
|
||||
# ==============================================================================
|
||||
declare exit_code
|
||||
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
|
||||
readonly exit_code_service="${1}"
|
||||
readonly exit_code_signal="${2}"
|
||||
readonly service="tvheadend"
|
||||
|
||||
bashio::log.info \
|
||||
"Service ${service} exited with code ${exit_code_service}" \
|
||||
"(by signal ${exit_code_signal})"
|
||||
|
||||
if [[ "${exit_code_service}" -eq 256 ]]; then
|
||||
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
|
||||
fi
|
||||
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
|
||||
elif [[ "${exit_code_service}" -ne 0 ]]; then
|
||||
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
|
||||
fi
|
||||
exec /run/s6/basedir/bin/halt
|
||||
fi
|
||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Starts TVHeadend
|
||||
@@ -0,0 +1 @@
|
||||
longrun
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/execlineb -S0
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Take down the S6 supervision tree when crond fails
|
||||
# ==============================================================================
|
||||
if -n { s6-test $# -ne 0 }
|
||||
if -n { s6-test ${1} -eq 256 }
|
||||
|
||||
s6-svscanctl -t /var/run/s6/services
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/execlineb -S0
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: TVHeadend
|
||||
# Take down the S6 supervision tree when TVHeadend fails
|
||||
# ==============================================================================
|
||||
if -n { s6-test $# -ne 0 }
|
||||
if -n { s6-test ${1} -eq 256 }
|
||||
|
||||
s6-svscanctl -t /var/run/s6/services
|
||||
Regular → Executable
Reference in New Issue
Block a user