Updater bot : inadyn updated to 2.12.0 #3874
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
# yamllint disable rule:line-length | |
# inspired from https://github.com/Poeschl/Hassio-Addons | |
--- | |
name: Builder | |
env: | |
BUILD_ARGS: "" | |
on: | |
workflow_call: | |
push: | |
branches: | |
- master | |
paths: | |
- "**/config.*" | |
jobs: | |
check-addon-changes: | |
runs-on: ubuntu-latest | |
outputs: | |
changedAddons: ${{ steps.filter.outputs.changes }} | |
steps: | |
- name: ↩️ Checkout | |
uses: actions/checkout@v4 | |
- name: 📂 Detect changed files | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: .github/paths-filter.yml | |
make-executable: | |
if: ${{ needs.check-addon-changes.outputs.changedAddons != '[]' }} | |
needs: check-addon-changes | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
addon: ${{ fromJSON(needs.check-addon-changes.outputs.changedAddons) }} | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Make scripts executable | |
run: | | |
echo "Starting" | |
git config core.filemode true | |
# shellcheck disable=SC2086,SC2046 | |
#git update-index --chmod=+x $(find "$path" -type f -iname "*.sh") | |
chmod u+x $(find "$path" -type f -iname "*.sh") || true | |
#git commit -am "fixing the script permissions..." | |
env: | |
path: "./${{ matrix.addon }}" | |
- name: Commit if needed | |
uses: EndBug/add-and-commit@v9 | |
with: | |
commit: -u | |
message: "GitHub bot : scripts executable" | |
default_author: github_actions | |
lint_config: | |
if: ${{ needs.check-addon-changes.outputs.changedAddons != '[]' }} | |
needs: check-addon-changes | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
addon: ${{ fromJSON(needs.check-addon-changes.outputs.changedAddons) }} | |
steps: | |
- name: ↩️ Checkout | |
uses: actions/checkout@v4 | |
- name: 🔎 Run Home Assistant Add-on Lint | |
uses: frenck/action-addon-linter@v2 | |
with: | |
path: "./${{ matrix.addon }}" | |
build: | |
if: ${{ needs.check-addon-changes.outputs.changedAddons != '[]' }} | |
needs: [check-addon-changes, make-executable] | |
runs-on: ubuntu-latest | |
environment: CR_PAT | |
name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on | |
strategy: | |
matrix: | |
addon: ${{ fromJSON(needs.check-addon-changes.outputs.changedAddons) }} | |
arch: ["aarch64", "amd64", "armv7"] | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Get information | |
id: info | |
uses: home-assistant/actions/helpers/info@master | |
with: | |
path: "./${{ matrix.addon }}" | |
- name: Check if add-on should be built | |
id: check | |
env: | |
HEAD: "${{ github.head_ref }}" | |
run: | | |
# shellcheck disable=SC2157,SC2086 | |
if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then | |
# shellcheck disable=SC2129 | |
echo "build_arch=true" >> $GITHUB_OUTPUT; | |
# shellcheck disable=SC2129 | |
echo "image=$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)" >> $GITHUB_OUTPUT; | |
if [[ -z "$HEAD" ]] && [[ "${{ github.event_name }}" == "push" ]]; then | |
# shellcheck disable=SC2129 | |
echo "BUILD_ARGS=" >> $GITHUB_ENV; | |
fi | |
else | |
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build"; | |
# shellcheck disable=SC2129 | |
echo "build_arch=false" >> $GITHUB_OUTPUT; | |
fi | |
- name: Login to GitHub Container Registry | |
if: env.BUILD_ARGS != '--test' | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build ${{ matrix.addon }} add-on | |
if: steps.check.outputs.build_arch == 'true' | |
uses: home-assistant/builder@master | |
env: | |
CAS_API_KEY: ${{ secrets.CAS_API_KEY }} | |
with: | |
args: | | |
${{ env.BUILD_ARGS }} \ | |
--${{ matrix.arch }} \ | |
--target /data/${{ matrix.addon }} \ | |
--image "${{ steps.check.outputs.image }}" \ | |
--docker-hub "ghcr.io/${{ github.repository_owner }}" \ | |
--addon | |
make-changelog: | |
if: ${{ needs.check-addon-changes.outputs.changedAddons != '[]' }} | |
needs: [check-addon-changes, build] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
addon: ${{ fromJSON(needs.check-addon-changes.outputs.changedAddons) }} | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Update changelog for minor versions | |
run: | | |
echo "Starting" | |
# Git pull | |
git pull || true | |
cd "$path" | |
# Get version | |
if [ -f config.yaml ]; then | |
version="$(sed -e '/version/!d' -e 's/.*version: //' config.yaml)" | |
elif [ -f config.json ]; then | |
version="$(sed -e '/version/!d' -e 's/.*[^"]*"\([^"]*\)"/\1/' config.json)" | |
version="${version//,}" | |
else | |
exit 1 | |
fi | |
# Exit if test | |
if [[ "$version" == *"test"* ]]; then exit 0; fi | |
# Create changelog | |
touch CHANGELOG.md | |
# If the version does not exist | |
if ! grep -q "$version" CHANGELOG.md; then | |
# And if latest wasn't a minor version | |
#if [ "$(sed -n '/^###/p;q' CHANGELOG.md)" ]; then | |
# sed -i "1d" CHANGELOG.md | |
# sed -i "1i\### $version ($(date '+%d-%m-%Y'))" CHANGELOG.md | |
#else | |
sed -i "1i\- Minor bugs fixed" CHANGELOG.md | |
sed -i "1i\### $version ($(date '+%d-%m-%Y'))" CHANGELOG.md | |
#fi | |
fi | |
env: | |
path: "./${{ matrix.addon }}" | |
- name: Commit if needed | |
uses: EndBug/add-and-commit@v9 | |
with: | |
commit: -u | |
message: "GitHub bot : changelog" | |
default_author: github_actions | |
fetch: --force | |
push: --force |