Skip to content
This repository has been archived by the owner on Oct 13, 2024. It is now read-only.

refactor!: move project to standalone version #1499

refactor!: move project to standalone version

refactor!: move project to standalone version #1499

Workflow file for this run

---
name: CI
on:
pull_request:
branches: [master, dev/standalone] # TODO: remove dev/standalone ... temporarily allow PRs to this branch
types: [opened, synchronize, reopened]
push:
branches: [master]
workflow_dispatch:
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
setup_release:
name: Setup Release
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
release_commit: ${{ steps.setup_release.outputs.release_commit }}
release_generate_release_notes: ${{ steps.setup_release.outputs.release_generate_release_notes }}
release_tag: ${{ steps.setup_release.outputs.release_tag }}
release_version: ${{ steps.setup_release.outputs.release_version }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Release
id: setup_release
uses: LizardByte/setup-release-action@v2024.801.192524
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
build:
needs:
- setup_release
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2019, ubuntu-20.04, macos-12]
architecture: [x64]
include: # additional runs
- os: windows-2019
architecture: x86
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
architecture: ${{ matrix.architecture }}
- name: Setup Python Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
- name: Compile Locale Translations
run: |
python ./scripts/_locale.py --compile
- name: Install npm packages
shell: bash
run: |
# install node_modules
npm install
# move node_modules directory to web directory
mv -f ./node_modules/ ./web/
- name: Compile Docs
working-directory: docs
run: |
make html
- name: Build pyinstaller package
run: |
python ./scripts/build.py
- name: Package Release
run: |
7z a "./Themerr-plex_${{ runner.os }}_${{ matrix.architecture }}.zip" "dist"
mkdir artifacts
mv "./Themerr-plex_${{ runner.os }}_${{ matrix.architecture }}.zip" ./artifacts/
- name: Upload Artifacts
uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact
with:
name: Themerr-plex_${{ runner.os }}_${{ matrix.architecture }}
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
path: |
${{ github.workspace }}/artifacts
- name: Test with pytest
id: test
shell: bash
run: |
python -m pytest \
-rxXs \
--tb=native \
--verbose \
--color=yes \
--cov=src \
tests
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: "${{ runner.os }}-${{ matrix.architecture }}"
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' }}
uses: LizardByte/create-release-action@v2024.614.221009
with:
allowUpdates: true
body: ${{ needs.setup_release.outputs.release_body }}
discussionCategory: announcements
generateReleaseNotes: ${{ needs.setup_release.outputs.release_generate_release_notes }}
name: ${{ needs.setup_release.outputs.release_tag }}
prerelease: true
tag: ${{ needs.setup_release.outputs.release_tag }}
token: ${{ secrets.GH_BOT_TOKEN }}