Skip to content

Commit

Permalink
Merge pull request #112 from phunkyfish/update-workflow-nexus
Browse files Browse the repository at this point in the history
Update deprecated github workflows nexus
  • Loading branch information
aassif authored Feb 22, 2024
2 parents 4c690e7 + 37cc9cd commit b2d7ff7
Show file tree
Hide file tree
Showing 5 changed files with 148 additions and 27 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ jobs:
if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get update; fi
if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get install fakeroot; fi
- name: Checkout Kodi repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: xbmc/xbmc
ref: Nexus
path: xbmc
- name: Checkout pvr.freebox repo
uses: actions/checkout@v2
- name: Checkout add-on repo
uses: actions/checkout@v4
with:
path: ${{ env.app_id }}
- name: Configure
Expand All @@ -41,7 +41,7 @@ jobs:
run: |
if [[ $DEBIAN_BUILD != true ]]; then cd ${app_id} && mkdir -p build && cd build; fi
if [[ $DEBIAN_BUILD != true ]]; then cmake -DADDONS_TO_BUILD=${app_id} -DADDON_SRC_PREFIX=${{ github.workspace }} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/xbmc/addons -DPACKAGE_ZIP=1 ${{ github.workspace }}/xbmc/cmake/addons; fi
if [[ $DEBIAN_BUILD == true ]]; then wget https://raw.githubusercontent.com/xbmc/xbmc/master/xbmc/addons/kodi-dev-kit/tools/debian-addon-package-test.sh && chmod +x ./debian-addon-package-test.sh; fi
if [[ $DEBIAN_BUILD == true ]]; then wget https://raw.githubusercontent.com/xbmc/xbmc/Nexus/xbmc/addons/kodi-dev-kit/tools/debian-addon-package-test.sh && chmod +x ./debian-addon-package-test.sh; fi
if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get build-dep ${{ github.workspace }}/${app_id}; fi
- name: Build
env:
Expand Down
28 changes: 14 additions & 14 deletions .github/workflows/changelog-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,28 +39,29 @@ jobs:

# Checkout the current repository into a directory (repositories name)
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.event.repository.name }}

# Checkout the required scripts from kodi-pvr/pvr-scripts into the 'scripts' directory
# Checkout the required scripts from xbmc/binary-addon-scripts into the 'scripts' directory
- name: Checkout Scripts
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
repository: kodi-pvr/pvr-scripts
repository: xbmc/binary-addon-scripts
path: scripts

# Install all dependencies required by the following steps
# - libxml2-utils, xmlstarlet: reading news and version from addon.xml.in
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libxml2-utils xmlstarlet
# Setup python version 3.9
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.9'

Expand All @@ -84,6 +85,7 @@ jobs:
# - steps.required-variables.outputs.version: version element from addon.xml.in
# - steps.required-variables.outputs.branch: branch of the triggering ref
# - steps.required-variables.outputs.today: today's date in format '%Y-%m-%d'
# Note: we use a random EOF for 'changes' as is best practice for for multiline variables
- name: Get required variables
id: required-variables
run: |
Expand All @@ -92,17 +94,15 @@ jobs:
then
changes=$(xmlstarlet fo -R "$(find . -name addon.xml.in)" | xmlstarlet sel -t -v 'string(/addon/extension/news)' | awk -v RS= 'NR==1')
fi
changes="${changes//'%'/'%25'}"
changes="${changes//$'\n'/'%0A'}"
changes="${changes//$'\r'/'%0D'}"
changes="${changes//$'\\n'/'%0A'}"
changes="${changes//$'\\r'/'%0D'}"
echo ::set-output name=changes::$changes
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "changes<<$EOF" >> $GITHUB_OUTPUT
echo "$changes" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
version=$(xmlstarlet fo -R "$(find . -name addon.xml.in)" | xmlstarlet sel -t -v 'string(/addon/@version)')
echo ::set-output name=version::$version
echo "version=$version" >> $GITHUB_OUTPUT
branch=$(echo ${GITHUB_REF#refs/heads/})
echo ::set-output name=branch::$branch
echo ::set-output name=today::$(date +'%Y-%m-%d')
echo "branch=$branch" >> $GITHUB_OUTPUT
echo "today=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
working-directory: ${{ github.event.repository.name }}

# Create a commit of the incremented version and changelog, news changes
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/increment-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Increment version when languages are updated

on:
push:
branches: [ Matrix, Nexus ]
paths:
- '**resource.language.**strings.po'

jobs:
default:
if: github.repository == 'aassif/pvr.freebox'
runs-on: ubuntu-latest
name: Increment add-on version when languages are updated

steps:

- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.event.repository.name }}

- name: Checkout Scripts
uses: actions/checkout@v4
with:
fetch-depth: 0
repository: xbmc/weblate-supplementary-scripts
path: scripts

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.9'

- name: Get changed files
uses: trilom/[email protected]

- name: Increment add-on version
run: |
python3 ../scripts/binary/increment_version.py $HOME/files.json -c -n
working-directory: ${{ github.event.repository.name }}

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libxml2-utils xmlstarlet
- name: Get required variables
id: required-variables
run: |
version=$(xmlstarlet fo -R "$(find . -name addon.xml.in)" | xmlstarlet sel -t -v 'string(/addon/@version)')
echo "version=$version" >> $GITHUB_OUTPUT
working-directory: ${{ github.event.repository.name }}

- name: Create PR for incrementing add-on versions
uses: peter-evans/[email protected]
with:
commit-message: Add-on version incremented to ${{ steps.required-variables.outputs.version }} from Weblate
title: Add-on version incremented to ${{ steps.required-variables.outputs.version }} from Weblate
body: Add-on version incremented triggered by ${{ github.sha }}
branch: inc-ver
delete-branch: true
path: ./${{ github.event.repository.name }}
18 changes: 9 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

# Checkout the current repository into a directory (repositories name)
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.event.repository.name }}
Expand All @@ -23,12 +23,14 @@ jobs:
# - libxml2-utils, xmlstarlet: reading news and version from addon.xml.in
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libxml2-utils xmlstarlet
# Create the variables required by the following steps
# - steps.required-variables.outputs.changes: latest entry in the changelog.txt (if exists), or addon.xml.in news element
# - steps.required-variables.outputs.version: version element from addon.xml.in
# - steps.required-variables.outputs.branch: branch of the triggering ref
# Note: we use a random EOF for 'changes' as is best practice for for multiline variables
- name: Get required variables
id: required-variables
run: |
Expand All @@ -37,16 +39,14 @@ jobs:
then
changes=$(xmlstarlet fo -R "$(find . -name addon.xml.in)" | xmlstarlet sel -t -v 'string(/addon/extension/news)' | awk -v RS= 'NR==1')
fi
changes="${changes//'%'/'%25'}"
changes="${changes//$'\n'/'%0A'}"
changes="${changes//$'\r'/'%0D'}"
changes="${changes//$'\\n'/'%0A'}"
changes="${changes//$'\\r'/'%0D'}"
echo ::set-output name=changes::$changes
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "changes<<$EOF" >> $GITHUB_OUTPUT
echo "$changes" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
version=$(xmlstarlet fo -R "$(find . -name addon.xml.in)" | xmlstarlet sel -t -v 'string(/addon/@version)')
echo ::set-output name=version::$version
echo "version=$version" >> $GITHUB_OUTPUT
branch=$(echo ${GITHUB_REF#refs/heads/})
echo ::set-output name=branch::$branch
echo "branch=$branch" >> $GITHUB_OUTPUT
working-directory: ${{ github.event.repository.name }}

# Create a release at {steps.required-variables.outputs.branch}
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/sync-addon-metadata-translations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Sync addon metadata translations

on:
push:
branches: [ Matrix, Nexus ]
paths:
- '**addon.xml.in'
- '**resource.language.**strings.po'

jobs:
default:
if: github.repository == 'aassif/pvr.freebox'
runs-on: ubuntu-latest

strategy:

fail-fast: false
matrix:
python-version: [ 3.9 ]

steps:

- name: Checkout repository
uses: actions/checkout@v4
with:
path: project

- name: Checkout sync_addon_metadata_translations repository
uses: actions/checkout@v4
with:
repository: xbmc/sync_addon_metadata_translations
path: sync_addon_metadata_translations

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install sync_addon_metadata_translations/
- name: Run sync-addon-metadata-translations
run: |
sync-addon-metadata-translations
working-directory: ./project

- name: Create PR for sync-addon-metadata-translations changes
uses: peter-evans/[email protected]
with:
commit-message: Sync of addon metadata translations
title: Sync of addon metadata translations
body: Sync of addon metadata translations triggered by ${{ github.sha }}
branch: amt-sync
delete-branch: true
path: ./project
reviewers: gade01

0 comments on commit b2d7ff7

Please sign in to comment.