Updater bot : prowlarr updated to nightly-1.10.1.4059-ls12 #4071
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 there isn't modifications listed | |
if [[ $(sed "1p" a) != "-"** ]]; then | |
sed -i "1i\- Minor bugs fixed" CHANGELOG.md | |
fi | |
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 |