Merge pull request #713 from MoojMidge/master #8
Workflow file for this run
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
name: Generate and Publish Development Repositories | |
on: | |
workflow_dispatch: | |
inputs: | |
prerelease: | |
description: 'Is this a pre-release? [true|false]' | |
required: false | |
default: 'true' | |
push: | |
tags: | |
- 'v*' | |
- '*-dev' | |
jobs: | |
repo-gen: | |
if: github.repository == 'anxdpanic/plugin.video.youtube' || github.event_name == 'workflow_dispatch' | |
name: Generate development repositories and upload them to mirrors | |
runs-on: ubuntu-22.04 | |
permissions: | |
contents: write | |
steps: | |
- name: Get and set release status | |
# workflow_dispatch: use prerelease variable for release status | |
# push-tag: check tag for alpha|beta|dev to determine release status | |
id: release | |
run: | | |
version=${GITHUB_REF/refs\/tags\//} | |
if [[ ! -z ${{ github.event.inputs.prerelease }} ]] ; | |
then | |
echo "pre-release=${{ github.event.inputs.prerelease }}" >> $GITHUB_OUTPUT | |
elif [[ $version == *[-+]@(alpha|beta|dev)*([.0-9a-z]) ]] ; | |
then | |
echo "pre-release=true" >> $GITHUB_OUTPUT | |
else | |
echo "pre-release=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
# install lftp for mirroring repository | |
# install lxml for repository generator script | |
run: | | |
sudo apt update | |
sudo apt install lftp | |
python -m pip install --upgrade pip | |
pip install lxml | |
- name: Checkout Official Branch (Unstable and Stable Releases) | |
# Check out the master branch to use for official [unstable|stable] add-on zip source | |
uses: actions/checkout@v4 | |
with: | |
path: ./official_testing/${{ github.event.repository.name }} | |
ref: "master" | |
- name: Checkout Unofficial Branch (Unstable and Stable Releases) | |
# Check out the nexus-unofficial branch to use for unofficial [unstable|stable] add-on zip source | |
uses: actions/checkout@v4 | |
with: | |
path: ./unofficial_testing/${{ github.event.repository.name }} | |
ref: "nexus-unofficial" | |
- name: Checkout Unofficial Branch (Stable Releases) | |
# Check out the nexus-unofficial branch to use for unofficial [stable] add-on zip source | |
if: steps.release.outputs.pre-release == 'false' | |
uses: actions/checkout@v4 | |
with: | |
path: ./unofficial/${{ github.event.repository.name }} | |
ref: "nexus-unofficial" | |
- name: Copy Repository Generator | |
# Copy the repository generator script from master branch to cwd | |
run: | | |
cp ./official_testing/${{ github.event.repository.name }}/.scripts/.prepare_repository.py . | |
cp ./official_testing/${{ github.event.repository.name }}/.scripts/.config.json . | |
- name: Download Repository Add-on Files from FTP | |
# Download [un]official testing repository add-ons source from mirrors for generating new repository add-on zips from source | |
run: | | |
lftp -c "\ | |
set ssl:verify-certificate false; \ | |
set sftp:auto-confirm yes; \ | |
open ${{ secrets.SFTP }}; \ | |
cd /root/anxdpanic/kodi/youtube/; \ | |
mirror --verbose --use-pget-n=8 -c --verbose repository.yt.testing_official ./official_testing/repository.yt.testing_official; \ | |
mirror --verbose --use-pget-n=8 -c --verbose repository.yt.testing_unofficial ./unofficial_testing/repository.yt.testing_unofficial; \ | |
bye \ | |
" | |
- name: Download Unofficial Repository Add-on Files from FTP | |
# Download unofficial repository add-on source from mirrors for generating new repository add-on zips from source | |
if: steps.release.outputs.pre-release == 'false' | |
run: | | |
lftp -c "\ | |
set ssl:verify-certificate false; \ | |
set sftp:auto-confirm yes; \ | |
open ${{ secrets.SFTP }}; \ | |
cd /root/anxdpanic/kodi/youtube/; \ | |
mirror --verbose --use-pget-n=8 -c --verbose repository.yt.unofficial ./unofficial/repository.yt.unofficial; \ | |
bye \ | |
" | |
- name: Generate Repositories | |
# Run the repository generator script to generate zips, addons.xml, and addons.xml.gz | |
run: | | |
python .prepare_repository.py --prerelease=${{ steps.release.outputs.pre-release }} | |
- name: Mirror Official Testing Repository to FTP (Unstable and Stable Releases) | |
# Mirror the generated official testing repository to the mirrors | |
# https://download.osmc.tv/dev/anxdpanic/kodi/youtube/official_testing/ | |
run: | | |
lftp -c "\ | |
set ssl:verify-certificate false; \ | |
set sftp:auto-confirm yes; \ | |
open ${{ secrets.SFTP }}; \ | |
cd /root/anxdpanic/kodi/youtube/; \ | |
lcd repository/; \ | |
mirror --verbose --use-pget-n=8 -c --reverse --verbose official_testing official_testing; \ | |
bye \ | |
" | |
- name: Mirror Unofficial Testing Repository to FTP (Unstable and Stable Releases) | |
# Mirror the generated unofficial testing repository to the mirrors | |
# https://download.osmc.tv/dev/anxdpanic/kodi/youtube/unofficial_testing/ | |
run: | | |
lftp -c "\ | |
set ssl:verify-certificate false; \ | |
set sftp:auto-confirm yes; \ | |
open ${{ secrets.SFTP }}; \ | |
cd /root/anxdpanic/kodi/youtube/; \ | |
lcd repository/; \ | |
mirror --verbose --use-pget-n=8 -c --reverse --verbose unofficial_testing unofficial_testing; \ | |
bye \ | |
" | |
- name: Mirror Unofficial Repository to FTP (Stable Releases) | |
# Mirror the generated unofficial repository to the mirrors | |
# https://download.osmc.tv/dev/anxdpanic/kodi/youtube/unofficial/ | |
if: steps.release.outputs.pre-release == 'false' | |
run: | | |
lftp -c "\ | |
set ssl:verify-certificate false; \ | |
set sftp:auto-confirm yes; \ | |
open ${{ secrets.SFTP }}; \ | |
cd /root/anxdpanic/kodi/youtube/; \ | |
lcd repository/; \ | |
mirror --verbose --use-pget-n=8 -c --reverse --verbose unofficial unofficial; \ | |
bye \ | |
" |