forked from tuomas-k/CECRemote
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
19d870d
commit 8c77a16
Showing
19 changed files
with
467 additions
and
420 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
version: 2 | ||
|
||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: weekly | ||
day: monday | ||
time: "12:00" | ||
labels: | ||
- dependencies | ||
commit-message: | ||
prefix: "DEP" | ||
open-pull-requests-limit: 10 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,304 @@ | ||
name: Build / CEC Remote | ||
|
||
on: | ||
push: | ||
# On Push to Master branch | ||
branches: | ||
- master | ||
# Ignore all Tags / Release | ||
tags-ignore: | ||
- '**' | ||
|
||
workflow_call: | ||
inputs: | ||
retention-build: | ||
description: "Retention Period for Setup files. Default is 90" | ||
default: 90 | ||
required: false | ||
type: number | ||
outputs: | ||
version: | ||
description: "MPE1 Version" | ||
value: ${{ jobs.mpe.outputs.version }} | ||
|
||
jobs: | ||
build: | ||
name: CEC Remote / Build | ||
runs-on: windows-2019 | ||
steps: | ||
- name: Setup Visual Studio 2019 | ||
uses: microsoft/setup-msbuild@v2 | ||
with: | ||
vs-version: 16.11 | ||
|
||
- name: Git Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Build | ||
run: | | ||
build_git.bat < nul | ||
working-directory: ${{ github.workspace }}\CecRemote\Installer | ||
shell: cmd | ||
|
||
- name: Upload Artifact / Plugin | ||
uses: actions/upload-artifact@v4 | ||
if: ${{ success() }} | ||
with: | ||
name: CECRemote | ||
path: | | ||
${{ github.workspace }}\CecRemote\Source\bin\Release\CecRemote.dll | ||
${{ github.workspace }}\CecRemote\External\x86\LibCecSharp.dll | ||
${{ github.workspace }}\CecRemote\External\x86\cec.dll | ||
${{ github.workspace }}\CecRemote\External\x64\LibCecSharp.dll | ||
${{ github.workspace }}\CecRemote\External\x64\cec.dll | ||
retention-days: ${{ inputs.retention-build || 90 }} | ||
if-no-files-found: error | ||
|
||
- name: Save cache | ||
uses: actions/cache/save@v4 | ||
with: | ||
path: ${{ github.workspace }} | ||
key: plugin | ||
|
||
codeql: | ||
name: CodeQL | ||
if: "contains(github.event.head_commit.message, '[release]')" | ||
uses: andrewjswan/MPE/.github/workflows/codeql.yml@master | ||
with: | ||
build-path: CecRemote\Installer | ||
needs: | ||
- build | ||
permissions: | ||
security-events: write | ||
secrets: inherit | ||
|
||
mpe: | ||
name: CEC Remote / MPE | ||
runs-on: windows-2019 | ||
needs: | ||
- build | ||
outputs: | ||
version: ${{ steps.version.outputs.version }} | ||
steps: | ||
- name: Restore cache | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: ${{ github.workspace }} | ||
key: plugin | ||
|
||
- name: Git Checkout / MPE / XPath | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: andrewjswan/MPE | ||
path: MPE | ||
|
||
- name: MP folder for MPEMaker | ||
run: | | ||
mkdir "C:\Team MediaPortal" | ||
shell: cmd | ||
|
||
- name: Link to MPEMaker | ||
run: | | ||
mklink /J "C:\Team MediaPortal\MediaPortal" "${{ github.workspace }}\MPE\MPEMaker" | ||
shell: cmd | ||
|
||
- name: Clear Build folder | ||
run: | | ||
del /F /Q *.mpe1 | ||
working-directory: ${{ github.workspace }}\CecRemote\Release | ||
shell: cmd | ||
|
||
- name: Get MPE1 Version | ||
id: version | ||
run: | | ||
FOR /F "tokens=*" %%i IN ('Tools\sigcheck.exe -accepteula -nobanner -n "..\Source\bin\Release\CECRemote.dll"') DO (ECHO version=%%i >> %GITHUB_OUTPUT%) | ||
working-directory: ${{ github.workspace }}\CecRemote\Installer | ||
shell: cmd | ||
|
||
- name: Build MPE1 | ||
run: | | ||
Create_Installer.bat | ||
working-directory: ${{ github.workspace }}\CecRemote\Installer | ||
shell: cmd | ||
|
||
- name: Upload Artifact / MPE1 | ||
uses: actions/upload-artifact@v4 | ||
if: ${{ success() }} | ||
with: | ||
name: CECRemote MPE1 | ||
path: | | ||
${{ github.workspace }}\CecRemote\Release\CECRemote-*.mpe1 | ||
retention-days: ${{ inputs.retention-build || 90 }} | ||
if-no-files-found: error | ||
|
||
- name: Upload Artifact / MPE XML | ||
uses: actions/upload-artifact@v4 | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
with: | ||
name: CECRemote XML | ||
path: | | ||
${{ github.workspace }}\CecRemote\Release\CECRemote.xml | ||
retention-days: ${{ inputs.retention-build || 90 }} | ||
if-no-files-found: error | ||
|
||
- name: Get Release Version Description | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
run: | | ||
call ..\..\MPE\XPath\xpath.cmd "CECRemote.xml" "//Items/PackageClass/GeneralInfo/VersionDescription" last > description.txt | ||
working-directory: ${{ github.workspace }}\CecRemote\Release | ||
shell: cmd | ||
|
||
- name: Clean Release Version Description | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
run: | | ||
sed.exe -i "s/\*\*\* We Stand with Ukraine \*\*\*//g" description.txt | ||
working-directory: ${{ github.workspace }}\CecRemote\Release | ||
shell: cmd | ||
|
||
- name: Add Badges to Release Version Description | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
run: | | ||
ECHO [![Downloads](https://img.shields.io/github/downloads/andrewjswan/CECRemote/v${{steps.version.outputs.version}}/total)](https://github.com/andrewjswan/CECRemote/releases/tag/v${{steps.version.outputs.version}}) [![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md) >> description.txt | ||
working-directory: ${{ github.workspace }}\CecRemote\Release | ||
shell: cmd | ||
|
||
- name: Clean Release Version Description | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
run: | | ||
sed.exe -i "s/ \//\//g" description.txt | ||
working-directory: ${{ github.workspace }}\CecRemote\Release | ||
shell: cmd | ||
|
||
- name: Upload Artifact / Version Description | ||
uses: actions/upload-artifact@v4 | ||
if: ${{ success() && contains(github.event.head_commit.message, '[release]') }} | ||
with: | ||
name: CECRemote Version Description | ||
path: | | ||
${{ github.workspace }}\CecRemote\Release\description.txt | ||
retention-days: ${{ inputs.retention-build || 90 }} | ||
if-no-files-found: error | ||
|
||
xml: | ||
name: CEC Remote / XML | ||
runs-on: ubuntu-latest | ||
if: "contains(github.event.head_commit.message, '[release]')" | ||
needs: | ||
- mpe | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Git Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Download Artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: CECRemote XML | ||
path: ${{ github.workspace }}/CecRemote/Release | ||
|
||
- name: Update / MPE1 XML | ||
uses: EndBug/add-and-commit@v9 | ||
with: | ||
message: 'CEC Remote ${{needs.mpe.outputs.version}} / Release' | ||
add: '${{ github.workspace }}/CecRemote/Release/CECRemote.xml' | ||
|
||
- name: Delete XML Artifact | ||
uses: geekyeggo/delete-artifact@v5 | ||
with: | ||
name: CECRemote XML | ||
failOnError: false | ||
|
||
release: | ||
name: CEC Remote / Release | ||
if: "contains(github.event.head_commit.message, '[release]')" | ||
needs: | ||
- mpe | ||
- xml | ||
permissions: | ||
contents: write | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Download Artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: CECRemote MPE1 | ||
path: release-files | ||
|
||
- name: Download Artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: CECRemote Version Description | ||
path: release-description | ||
|
||
- name: Check Artifacts | ||
run: | | ||
ls -l | ||
working-directory: release-files | ||
|
||
- name: Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
name: CEC Remote v${{needs.mpe.outputs.version}} | ||
tag_name: v${{needs.mpe.outputs.version}} | ||
body_path: release-description/description.txt | ||
generate_release_notes: true | ||
files: | | ||
release-files/*.mpe1 | ||
- name: Delete MPE1 Artifact | ||
uses: geekyeggo/delete-artifact@v5 | ||
with: | ||
name: CECRemote MPE1 | ||
failOnError: false | ||
|
||
- name: Delete Version Description Artifact | ||
uses: geekyeggo/delete-artifact@v5 | ||
with: | ||
name: CECRemote Version Description | ||
failOnError: false | ||
|
||
ci-status: | ||
name: Build Status | ||
runs-on: ubuntu-latest | ||
needs: | ||
- build | ||
- mpe | ||
if: always() | ||
steps: | ||
- name: Success | ||
if: ${{ !(contains(needs.*.result, 'failure')) }} | ||
run: exit 0 | ||
- name: Failure | ||
if: ${{ contains(needs.*.result, 'failure') }} | ||
run: exit 1 | ||
|
||
release-status: | ||
name: Release Status | ||
if: "contains(github.event.head_commit.message, '[release]')" | ||
runs-on: ubuntu-latest | ||
needs: | ||
- release | ||
steps: | ||
- name: Success | ||
if: ${{ !(contains(needs.*.result, 'failure')) }} | ||
run: exit 0 | ||
- name: Failure | ||
if: ${{ contains(needs.*.result, 'failure') }} | ||
run: exit 1 | ||
|
||
cache-clear: | ||
name: Clear cache | ||
runs-on: ubuntu-latest | ||
needs: | ||
- mpe | ||
if: always() | ||
steps: | ||
- name: Clear cache | ||
uses: easimon/wipe-cache@main |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
Oops, something went wrong.