This repository has been archived by the owner on Mar 18, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 46
132 lines (118 loc) · 4.23 KB
/
publish.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
132
name: Publish
# Run only on new tag
on:
create:
tags:
- v*
jobs:
test-before-release:
if: startsWith(github.ref, 'refs/tags/') && github.actor == 'arvvoid'
runs-on: ubuntu-latest
name: Pre-release Tests
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
# Install requirements
- name: Install requirements
run: |
sudo apt-get update
sudo apt-get -y install libxml2-utils
sudo apt-get -y install gettext
python -m pip install --upgrade pip
pip install wheel
pip install -r requirements.txt
pip install kodi-addon-checker
# Clean files not accepted by Kodi add-on checker
- name: Clean
id: clean
run: |
rm -R .github/
rm .all-contributorsrc
rm .gitignore
rm .gitattributes
rm *.yml
- name: Main Test, Leia and Matrix
id: test
run: make test-multi
# Language files sync test
- name: Test if language files are in sync with POT
id: lang-test
run: make test-language-sync
# If test success and this is a tag make a release
release:
needs: test-before-release
if: startsWith(github.ref, 'refs/tags/') && github.actor == 'arvvoid'
runs-on: ubuntu-latest
name: Release
steps:
- uses: actions/checkout@v2
- name: Install requirements
run: |
sudo apt-get update
sudo apt-get -y install libxml2-utils
- name: Make GitHub Release Zip for Leia and Matrix
id: release-multi
run: make zip
- name: Set env
run: |
echo "RELEASE_ZIP_LEIA=$(ls ../*-leia.zip)" >> $GITHUB_ENV
echo "RELEASE_ZIP_MATRIX=$(ls ../*-matrix.zip)" >> $GITHUB_ENV
echo "RELEASE_ASSET_NAME_LEIA=$(cd ..;ls *-leia.zip)" >> $GITHUB_ENV
echo "RELEASE_ASSET_NAME_MATRIX=$(cd ..;ls *-matrix.zip)" >> $GITHUB_ENV
echo "RELEASE_NAME=$(xmllint --xpath 'string(/addon/@version)' addon.xml)" >> $GITHUB_ENV
- name: Create Github Release
id: create_release
uses: actions/create-release@v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: true
- name: Upload Addon zip Leia to github release
id: upload-release-asset-leia
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ env.RELEASE_ZIP_LEIA }}
asset_name: ${{ env.RELEASE_ASSET_NAME_LEIA }}
asset_content_type: application/zip
- name: Upload Addon zip Matrix to github release
id: upload-release-asset-matrix
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ env.RELEASE_ZIP_MATRIX }}
asset_name: ${{ env.RELEASE_ASSET_NAME_MATRIX }}
asset_content_type: application/zip
# if release is success send to the official Kodi add-on repository
# both Leia and Matrix
kodi-addon-submitter:
needs: release
if: startsWith(github.ref, 'refs/tags/') && github.actor == 'arvvoid'
runs-on: ubuntu-latest
name: Kodi addon submitter
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Submit to official kodi repository
id: kodi-addon-submitter
uses: xbmc/action-kodi-addon-submitter@v1.1
with:
kodi-repository: repo-plugins
kodi-version: leia
addon-id: plugin.video.hbogoeu
kodi-matrix: true # Submit a Python 2/3 compatible addon to matrix branch in addition to the target branch
env: # Make sure you create the below secrets (GH_TOKEN and EMAIL)
GH_USERNAME: ${{ github.actor }}
GH_TOKEN: ${{secrets.GH_TOKEN}}
EMAIL: ${{secrets.EMAIL}}