-
Notifications
You must be signed in to change notification settings - Fork 114
131 lines (116 loc) · 4.5 KB
/
release-development-repository.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Generate Development Repository
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 repository and upload to mirrors
runs-on: ubuntu-22.04
permissions:
contents: write
steps:
- name: 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
run: |
sudo apt update
sudo apt install lftp
python -m pip install --upgrade pip
pip install lxml
- name: Checkout Official Add-on
uses: actions/checkout@v4
with:
path: ./official_testing/${{ github.event.repository.name }}
ref: "master"
- name: Checkout Unofficial Add-on
uses: actions/checkout@v4
with:
path: ./unofficial_testing/${{ github.event.repository.name }}
ref: "nexus-unofficial"
- name: Checkout Unofficial Add-on
if: steps.release.outputs.pre-release == 'false'
uses: actions/checkout@v4
with:
path: ./unofficial/${{ github.event.repository.name }}
ref: "nexus-unofficial"
- name: Checkout Add-on
uses: actions/checkout@v4
with:
path: ${{ github.event.repository.name }}
- name: Download Repository Add-on Files from FTP
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
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: Copy Generator Script
run: |
cp ./official_testing/${{ github.event.repository.name }}/.scripts/.prepare_repository.py .
cp ./official_testing/${{ github.event.repository.name }}/.scripts/.config.json .
- name: Generate Repository
run: |
python .prepare_repository.py --prerelease=${{ steps.release.outputs.pre-release }}
- name: Mirror Repository to FTP
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; \
mirror --verbose --use-pget-n=8 -c --reverse --verbose unofficial_testing unofficial_testing; \
bye \
"
- name: Mirror Unofficial Repository to FTP
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 \
"