Merge pull request #42 from jellyfin/ci

This commit is contained in:
Cody Robibero 2022-03-19 10:02:51 -06:00 committed by GitHub
commit 9684dc7bfc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 127 additions and 255 deletions

View File

@ -1,37 +0,0 @@
name: Build Plugin
on:
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
include-prerelease: true
- name: Build Jellyfin Plugin
uses: oddstr13/jellyfin-plugin-repository-manager@v0.4.2
id: jprm
with:
dotnet-target: net6.0
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: build-artifact
retention-days: 30
if-no-files-found: error
path: ${{ steps.jprm.outputs.artifact }}

18
.github/workflows/build.yaml vendored Normal file
View File

@ -0,0 +1,18 @@
name: '🏗️ Build Plugin'
on:
push:
branches:
- master
paths-ignore:
- '**/*.md'
pull_request:
branches:
- master
paths-ignore:
- '**/*.md'
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/build.yaml@master

14
.github/workflows/bump-version.yaml vendored Normal file
View File

@ -0,0 +1,14 @@
name: "🆙 Bump Version"
on:
release:
types:
- published
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/bump-version.yaml@master
with:
csproj-name: Jellyfin.Plugin.TvMaze
is-unstable: ${{ github.event.release.prerelease }}

20
.github/workflows/changelog.yaml vendored Normal file
View File

@ -0,0 +1,20 @@
name: '📝 Create/Update Release Draft & Release Bump PR'
on:
push:
branches:
- master
paths-ignore:
- build.yaml
workflow_dispatch:
repository_dispatch:
types:
- update-prep-command
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/changelog.yaml@master
with:
repository-name: jellyfin/jellyfin-plugin-tvmaze
secrets:
token: ${{ secrets.JF_BOT_TOKEN }}

View File

@ -1,46 +0,0 @@
name: Run CodeQL
on:
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
schedule:
- cron: '24 2 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'jellyfin/jellyfin-plugin-tvmaze'
strategy:
fail-fast: false
matrix:
language: [ 'csharp' ]
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
include-prerelease: true
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@ -1,5 +1,5 @@
# Allows for the definition of PR and Issue /commands
name: Slash Command Dispatcher
name: '📟 Slash Command Dispatcher'
on:
issue_comment:
@ -7,15 +7,7 @@ on:
- created
jobs:
launcher:
runs-on: ubuntu-latest
steps:
- name: Command Dispatch
uses: peter-evans/slash-command-dispatch@v2
with:
token: ${{ secrets.JF_BOT_TOKEN }}
permission: write
issue-type: pull-request
commands: |-
rebase
update-prep
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/command-dispatch.yaml@master
secrets:
token: ${{ secrets.JF_BOT_TOKEN }}

View File

@ -1,4 +1,4 @@
name: PR Rebase Command
name: '🔀 PR Rebase Command'
on:
repository_dispatch:
@ -6,29 +6,11 @@ on:
- rebase-command
jobs:
rebase:
runs-on: ubuntu-latest
steps:
- name: Rebase PR
uses: peter-evans/rebase@v1
id: rebase
with:
head: ${{ github.event.client_payload.pull_request.head.label }}
- name: Add Success Reaction
if: ${{ steps.rebase.outputs.rebased-count == 1 }}
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.JF_BOT_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
reaction-type: hooray
- name: Add Failure Reaction
if: ${{ steps.rebase.outputs.rebased-count == 0 || failure() }}
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.JF_BOT_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
reaction-type: confused, -1
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/command-rebase.yaml@master
with:
rebase-head: ${{ github.event.client_payload.pull_request.head.label }}
repository-full-name: ${{ github.event.client_payload.github.payload.repository.full_name }}
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
secrets:
token: ${{ secrets.JF_BOT_TOKEN }}

View File

@ -1,16 +0,0 @@
name: Sync labels
on:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
jobs:
labels:
runs-on: ubuntu-latest
steps:
- uses: EndBug/label-sync@v2
with:
config-file: https://raw.githubusercontent.com/jellyfin/jellyfin-meta-plugins/master/.github/plugin-repo-labels.yaml
delete-other-labels: true
token: ${{ secrets.JF_BOT_TOKEN }}

18
.github/workflows/publish.yaml vendored Normal file
View File

@ -0,0 +1,18 @@
name: '🚀 Publish Plugin'
on:
release:
types:
- released
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/publish.yaml@master
with:
version: ${{ github.event.release.tag_name }}
is-unstable: ${{ github.event.release.prerelease }}
secrets:
deploy-host: ${{ secrets.DEPLOY_HOST }}
deploy-user: ${{ secrets.DEPLOY_USER }}
deploy-key: ${{ secrets.DEPLOY_KEY }}

12
.github/workflows/scan-codeql.yaml vendored Normal file
View File

@ -0,0 +1,12 @@
name: '🔬 Run CodeQL'
on:
push:
pull_request:
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/scan-codeql.yaml@master
with:
repository-name: jellyfin/jellyfin-plugin-tvmaze

12
.github/workflows/sync-labels.yaml vendored Normal file
View File

@ -0,0 +1,12 @@
name: '🏷️ Sync labels'
on:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/sync-labels.yaml@master
secrets:
token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,32 +0,0 @@
name: Test Plugin
on:
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
include-prerelease: true
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal

18
.github/workflows/test.yaml vendored Normal file
View File

@ -0,0 +1,18 @@
name: '🧪 Test Plugin'
on:
push:
branches:
- master
paths-ignore:
- '**/*.md'
pull_request:
branches:
- master
paths-ignore:
- '**/*.md'
workflow_dispatch:
jobs:
call:
uses: jellyfin/jellyfin-meta-plugins/.github/workflows/test.yaml@master

View File

@ -1,83 +0,0 @@
# Automates creation of Release Drafts using Release Drafter
name: Update Release Draft & Create Release Bump PR
on:
push:
branches:
- master
paths-ignore:
- build.yaml
workflow_dispatch:
repository_dispatch:
types:
- update-prep-command
jobs:
update_release_draft:
runs-on: ubuntu-latest
if: github.repository == 'jellyfin/jellyfin-plugin-tvmaze'
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- name: Update Draft
uses: release-drafter/release-drafter@v5.15.0
id: draft
env:
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
- name: Setup YQ
uses: chrisdickinson/setup-yq@latest
with:
yq-version: v4.12.2
- name: Set-up Environment
run: |
TAG="${{ steps.draft.outputs.tag_name }}"
echo "VERSION=${TAG#v}" >> $GITHUB_ENV
cat << EOF | grep -P '^([*-] |###)' > cl.md
${{ steps.draft.outputs.body }}
EOF
sed -i -r 's/^(#+) (:.*:)? *(.*)$/\n\1 \3 \1/' cl.md
sed -i -r 's/^\*/-/' cl.md
echo "CHANGELOG<<EOF" >> $GITHUB_ENV
cat cl.md >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
echo "HAS_CHANGES=$(grep -qie 'No changes$' cl.md && echo false || echo true)" >> $GITHUB_ENV
rm cl.md
echo "ABI_VERSION=$(curl -s https://api.jellyfin.org/openapi/jellyfin-openapi-stable.json | jq -r '.info.version').0" >> $GITHUB_ENV
- name: Checkout Repository
if: ${{ env.HAS_CHANGES == 'true' }}
uses: actions/checkout@v2
- name: Update build.yaml
if: ${{ env.HAS_CHANGES == 'true' }}
run: |
yq eval '.version = env(VERSION) | .targetAbi = env(ABI_VERSION) | .changelog = strenv(CHANGELOG) | .changelog style="literal"' -i build.yaml
- name: Commit Changes
if: ${{ env.HAS_CHANGES == 'true' }}
run: |
git config user.name "jellyfin-bot"
git config user.email "team@jellyfin.org"
git checkout -b prepare-${{ env.VERSION }}
git commit -am "Bump version to ${{ env.VERSION }}"
git push -f origin prepare-${{ env.VERSION }}
- name: Create or Update PR
if: ${{ env.HAS_CHANGES == 'true' }}
uses: k3rnels-actions/pr-update@v1
with:
token: ${{ secrets.JF_BOT_TOKEN }}
pr_title: Prepare for release ${{ steps.draft.outputs.tag_name }}
pr_source: prepare-${{ env.VERSION }}
pr_labels: 'release-prep,skip-changelog'
pr_body: |
:robot: This is a generated PR to update version and changelog in `build.yaml`.
---
${{ env.CHANGELOG }}

View File

@ -1,7 +1,7 @@
name: "TVmaze"
guid: "A4A488D0-17A3-4919-8D82-7F3DE4F6B209"
imageUrl: "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-tvmaze.png"
version: "10"
version: "11"
targetAbi: "10.8.0.0"
framework: "net6.0"
owner: "jellyfin"