1010 workflow_dispatch :
1111
1212concurrency :
13- group : ${{ github.workflow }}-${{ github.ref }}
13+ group : " ${{ github.workflow }}-${{ github.ref }}"
1414 cancel-in-progress : true
1515
1616jobs :
1717 setup_release :
1818 name : Setup Release
1919 outputs :
20- changelog_changes : ${{ steps.setup_release.outputs.changelog_changes }}
21- changelog_date : ${{ steps.setup_release.outputs.changelog_date }}
22- changelog_exists : ${{ steps.setup_release.outputs.changelog_exists }}
23- changelog_release_exists : ${{ steps.setup_release.outputs.changelog_release_exists }}
24- changelog_url : ${{ steps.setup_release.outputs.changelog_url }}
25- changelog_version : ${{ steps.setup_release.outputs.changelog_version }}
26- publish_pre_release : ${{ steps.setup_release.outputs.publish_pre_release }}
2720 publish_release : ${{ steps.setup_release.outputs.publish_release }}
28- publish_stable_release : ${{ steps.setup_release.outputs.publish_stable_release }}
29- release_body : ${{ steps.setup_release.outputs.release_body }}
3021 release_build : ${{ steps.setup_release.outputs.release_build }}
3122 release_commit : ${{ steps.setup_release.outputs.release_commit }}
32- release_generate_release_notes : ${{ steps.setup_release.outputs.release_generate_release_notes }}
3323 release_tag : ${{ steps.setup_release.outputs.release_tag }}
3424 release_version : ${{ steps.setup_release.outputs.release_version }}
3525 runs-on : ubuntu-latest
3929
4030 - name : Setup Release
4131 id : setup_release
42- uses : LizardByte/setup-release-action@v2023.1210.1904
32+ uses : LizardByte/setup-release-action@v2024.520.193857
4333 with :
4434 github_token : ${{ secrets.GITHUB_TOKEN }}
4535
5444 with :
5545 path : Plugger.bundle
5646
57- - name : Install Python
58- uses : LizardByte/setup-python-action@v2023.1210.35516
47+ - name : Set up Python
48+ uses : LizardByte/setup-python-action@v2024.515.10401
5949 with :
6050 python-version : ' 2.7'
6151
@@ -73,25 +63,25 @@ jobs:
7363 python -m pip install --upgrade --target=./Contents/Libraries/Shared -r \
7464 requirements.txt --no-warn-script-location
7565
66+ - name : Compile Locale Translations
67+ working-directory : Plugger.bundle
68+ run : |
69+ python ./scripts/_locale.py --compile
70+
7671 - name : Install npm packages
7772 working-directory : Plugger.bundle
7873 run : |
7974 npm install
8075 mv ./node_modules ./Contents/Resources/web
8176
8277 - name : Build plist
78+ shell : bash
8379 working-directory : Plugger.bundle
8480 env :
8581 BUILD_VERSION : ${{ needs.setup_release.outputs.release_tag }}
8682 run : |
8783 python ./scripts/build_plist.py
8884
89- - name : Test Plex Plugin
90- # todo - replace with pytest
91- working-directory : Plugger.bundle
92- run : |
93- python ./Contents/Code/__init__.py
94-
9585 - name : Package Release
9686 shell : bash
9787 run : |
10292 "-xr!plexhints*" \
10393 "-xr!Plugger.bundle/.*" \
10494 "-xr!Plugger.bundle/cache.sqlite" \
95+ "-xr!Plugger.bundle/codecov.yml" \
96+ "-xr!Plugger.bundle/crowdin.yml" \
10597 "-xr!Plugger.bundle/DOCKER_README.md" \
10698 "-xr!Plugger.bundle/Dockerfile" \
10799 "-xr!Plugger.bundle/docs" \
@@ -122,14 +114,77 @@ jobs:
122114
123115 - name : Create/Update GitHub Release
124116 if : ${{ needs.setup_release.outputs.publish_release == 'true' }}
125- uses : LizardByte/create-release-action@v2023.1210.832
117+ uses : LizardByte/create-release-action@v2024.520.193838
126118 with :
127119 allowUpdates : true
128- body : ' '
129120 discussionCategory : announcements
130121 generateReleaseNotes : true
131122 name : ${{ needs.setup_release.outputs.release_tag }}
132- # use pre-release for now
133- prerelease : true # ${{ needs.setup_release.outputs.publish_pre_release }}
123+ prerelease : true
134124 tag : ${{ needs.setup_release.outputs.release_tag }}
135125 token : ${{ secrets.GH_BOT_TOKEN }}
126+
127+ pytest :
128+ needs : [build]
129+ strategy :
130+ fail-fast : false
131+ matrix :
132+ os : [windows-latest, ubuntu-latest, macos-latest]
133+
134+ runs-on : ${{ matrix.os }}
135+ steps :
136+ - name : Checkout
137+ uses : actions/checkout@v4
138+
139+ - name : Download artifacts
140+ uses : actions/download-artifact@v4
141+ with :
142+ name : Plugger.bundle
143+
144+ - name : Extract artifacts zip
145+ shell : bash
146+ run : |
147+ # extract zip
148+ 7z x Plugger.bundle.zip -o.
149+
150+ # move all files from "Plugger.bundle" to root, with no target directory
151+ cp -r ./Plugger.bundle/. .
152+
153+ # remove zip
154+ rm Plugger.bundle.zip
155+
156+ - name : Set up Python
157+ uses : LizardByte/setup-python-action@v2024.515.10401
158+ with :
159+ python-version : ' 2.7'
160+
161+ - name : Install python dependencies
162+ shell : bash
163+ run : |
164+ python -m pip --no-python-version-warning --disable-pip-version-check install --upgrade \
165+ pip setuptools wheel
166+ python -m pip --no-python-version-warning --disable-pip-version-check install --no-build-isolation \
167+ -r requirements-dev.txt
168+
169+ - name : Test with pytest
170+ id : test
171+ shell : bash
172+ run : |
173+ python -m pytest \
174+ -rxXs \
175+ --tb=native \
176+ --verbose \
177+ --cov=Contents/Code \
178+ tests
179+
180+ - name : Upload coverage
181+ # any except canceled or skipped
182+ if : >-
183+ always() &&
184+ (steps.test.outcome == 'success' || steps.test.outcome == 'failure') &&
185+ startsWith(github.repository, 'LizardByte/')
186+ uses : codecov/codecov-action@v4
187+ with :
188+ fail_ci_if_error : true
189+ flags : ${{ runner.os }}
190+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments