mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-22 04:23:08 +00:00
[3] Multiple GitHub Action updates (#2104)
This commit is contained in:
parent
3af2dee7c5
commit
a671d06dd9
6 changed files with 178 additions and 34 deletions
22
.github/workflows/increment-build.yml
vendored
22
.github/workflows/increment-build.yml
vendored
|
@ -1,7 +1,7 @@
|
|||
name: Increment Build
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
branches: [nightly]
|
||||
types: [closed]
|
||||
|
||||
|
@ -39,7 +39,12 @@ jobs:
|
|||
version="${value%-build*}"
|
||||
|
||||
if [[ "$value" == *"-"* ]]; then
|
||||
build_value="$((${value#*-build} + 1))"
|
||||
value2="${value#*-build}"
|
||||
if [[ "$value2" == *"."* ]]; then
|
||||
build_value="$((${value2%.*} + 1))"
|
||||
else
|
||||
build_value="$((${value2} + 1))"
|
||||
fi
|
||||
else
|
||||
build_value="1"
|
||||
fi
|
||||
|
@ -175,3 +180,16 @@ jobs:
|
|||
avatar_url: ${{ vars.BOT_IMAGE }}
|
||||
author: ${{ vars.REPO_NAME }} Nightly Release
|
||||
author_icon_url: ${{ vars.RELEASE_IMAGE }}
|
||||
|
||||
cleanup-tags:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ increment-build, verify-changes, docker-build-nightly, commit-notification ]
|
||||
if: ${{ success() }}
|
||||
steps:
|
||||
- name: remove tag
|
||||
run: |
|
||||
HUB_TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${{ secrets.DOCKER_HUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}\"}" https://hub.docker.com/v2/users/login/ | jq -r .token)
|
||||
curl -i -X DELETE \
|
||||
-H "Accept: application/json" \
|
||||
-H "Authorization: JWT $HUB_TOKEN" \
|
||||
https://hub.docker.com/v2/repositories/kometateam/kometa/tags/${{ github.head_ref }}/
|
30
.github/workflows/release-develop.yml
vendored
30
.github/workflows/release-develop.yml
vendored
|
@ -2,6 +2,10 @@ name: Develop Release
|
|||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
build_number:
|
||||
description: Choose the build number to push develop to.
|
||||
default: 0
|
||||
|
||||
jobs:
|
||||
release-develop:
|
||||
|
@ -23,10 +27,10 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Fast Forward Develop
|
||||
id: forward
|
||||
run: |
|
||||
value=$(cat VERSION)
|
||||
develop_hash=$(git rev-parse HEAD)
|
||||
next_build="${{ vars.DEVELOP_BUILD }}"
|
||||
|
||||
if [[ "$value" == *"-"* ]]; then
|
||||
develop_build="$((${value#*-build}))"
|
||||
|
@ -35,7 +39,6 @@ jobs:
|
|||
fi
|
||||
|
||||
git checkout origin/nightly
|
||||
|
||||
value=$(cat VERSION)
|
||||
|
||||
if [[ "$value" == *"-"* ]]; then
|
||||
|
@ -46,16 +49,25 @@ jobs:
|
|||
|
||||
echo "DEVELOP_BUILD: '${develop_build}'"
|
||||
echo "NIGHTLY_BUILD: '${nightly_build}'"
|
||||
echo "NEXT_BUILD: '${next_build}'"
|
||||
|
||||
if (( next_build <= develop_build )); then
|
||||
echo "::error::NEXT_BUILD variable (${next_build}) must be greater than DEVELOP_BUILD (${develop_build})"
|
||||
if ! [[ ${{ github.event.inputs.build_number }} =~ ^[0-9]+$ ]]; then
|
||||
echo "::error::BUILD_NUMBER (${{ github.event.inputs.build_number }}) must be a number"
|
||||
exit 1
|
||||
elif (( next_build > nightly_build )); then
|
||||
echo "::error::NEXT_BUILD variable (${next_build}) must be less than or equal to NIGHTLY_BUILD (${nightly_build})"
|
||||
elif [[ "${{ github.event.inputs.build_number }}" == "0" ]]; then
|
||||
next_build="${nightly_build}"
|
||||
elif (( ${{ github.event.inputs.build_number }} <= develop_build )); then
|
||||
echo "::error::BUILD_NUMBER (${{ github.event.inputs.build_number }}) must be greater than DEVELOP_BUILD (${develop_build})"
|
||||
exit 1
|
||||
elif (( ${{ github.event.inputs.build_number }} > nightly_build )); then
|
||||
echo "::error::BUILD_NUMBER (${{ github.event.inputs.build_number }}) must be less than or equal to NIGHTLY_BUILD (${nightly_build})"
|
||||
exit 1
|
||||
else
|
||||
next_build="${{ github.event.inputs.build_number }}"
|
||||
fi
|
||||
|
||||
echo "NEXT_BUILD: '${next_build}'"
|
||||
echo "build=next_build" >> $GITHUB_OUTPUT
|
||||
|
||||
while : ; do
|
||||
value=$(cat VERSION)
|
||||
|
||||
|
@ -86,7 +98,7 @@ jobs:
|
|||
if: success()
|
||||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
title: "${{ vars.REPO_NAME }} develop pushed to Build ${{ vars.DEVELOP_BUILD }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
title: "${{ vars.REPO_NAME }} develop pushed to Build ${{ steps.forward.outputs.build }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_SUCCESS }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
|
@ -100,7 +112,7 @@ jobs:
|
|||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
message: ${{ vars.BUILD_FAILURE_ROLE }}
|
||||
title: "${{ vars.REPO_NAME }} develop pushed to Build ${{ vars.DEVELOP_BUILD }}: ${{ vars.TEXT_FAILURE }}"
|
||||
title: "${{ vars.REPO_NAME }} develop pushed to Build ${{ steps.forward.outputs.build }}: ${{ vars.TEXT_FAILURE }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_FAILURE }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
|
|
31
.github/workflows/release-master.yml
vendored
31
.github/workflows/release-master.yml
vendored
|
@ -2,6 +2,15 @@ name: Master Release
|
|||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_type:
|
||||
type: choice
|
||||
description: Choose which type of release to perform.
|
||||
options:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
default: patch
|
||||
|
||||
jobs:
|
||||
release-master:
|
||||
|
@ -26,21 +35,25 @@ jobs:
|
|||
run: |
|
||||
value=$(cat VERSION)
|
||||
version="${value%-build*}"
|
||||
next_version="${{ vars.NEXT_VERSION }}"
|
||||
echo "CURRENT_VERSION: '${version}'"
|
||||
echo "NEXT_VERSION: '${next_version}'"
|
||||
IFS='.' read -r MAJOR MINOR PATCH <<< "$version"
|
||||
|
||||
if [[ "$version" == "$next_version" ]]; then
|
||||
echo "::error::NEXT_VERSION variable (${next_version}) must be incremented"
|
||||
exit 1
|
||||
if [[ "${{ github.event.inputs.release_type }}" == "major" ]]; then
|
||||
NEW_VERSION="$((MAJOR+1)).0.0"
|
||||
elif [[ "${{ github.event.inputs.release_type }}" == "minor" ]]; then
|
||||
NEW_VERSION="${MAJOR}.$((MINOR+1)).0"
|
||||
else
|
||||
NEW_VERSION="${MAJOR}.${MINOR}.$((PATCH+1))"
|
||||
fi
|
||||
|
||||
echo "$next_version" > "VERSION"
|
||||
echo "NEW_VERSION='${NEW_VERSION}'"
|
||||
echo "new_ver=$NEW_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "$NEW_VERSION" > "VERSION"
|
||||
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add VERSION
|
||||
git commit -m "Kometa Release ${next_version}"
|
||||
git commit -m "Kometa Release ${NEW_VERSION}"
|
||||
git push origin nightly
|
||||
git push origin refs/heads/nightly:refs/heads/develop
|
||||
git push origin refs/heads/nightly:refs/heads/main
|
||||
|
@ -50,7 +63,7 @@ jobs:
|
|||
if: success()
|
||||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
title: "${{ vars.REPO_NAME }} master release ${{ vars.NEXT_VERSION }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
title: "${{ vars.REPO_NAME }} master release ${{ steps.release.outputs.new_ver }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_SUCCESS }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
|
@ -64,7 +77,7 @@ jobs:
|
|||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
message: ${{ vars.BUILD_FAILURE_ROLE }}
|
||||
title: "${{ vars.REPO_NAME }} master release ${{ vars.NEXT_VERSION }}: ${{ vars.TEXT_FAILURE }}"
|
||||
title: "${{ vars.REPO_NAME }} master release ${{ steps.release.outputs.new_ver }}: ${{ vars.TEXT_FAILURE }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_FAILURE }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
|
|
113
.github/workflows/validate-pull.yml
vendored
113
.github/workflows/validate-pull.yml
vendored
|
@ -1,7 +1,7 @@
|
|||
name: Validate Pull Request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, labeled]
|
||||
|
||||
jobs:
|
||||
|
@ -15,7 +15,7 @@ jobs:
|
|||
echo "Base Repo: ${{ github.event.pull_request.base.repo.full_name }}"
|
||||
echo "Base Ref: ${{ github.base_ref }}"
|
||||
echo "Head Repo: ${{ github.event.pull_request.head.repo.full_name }}"
|
||||
echo "Head Ref: ${{ github.head_ref }}"
|
||||
echo "Head Ref: ${{ github.event.pull_request.head.ref }}"
|
||||
|
||||
- name: Check Base Branch
|
||||
if: github.base_ref == 'master' || github.base_ref == 'develop'
|
||||
|
@ -27,18 +27,61 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Spellcheck
|
||||
uses: rojopolis/spellcheck-github-actions@0.36.0
|
||||
uses: rojopolis/spellcheck-github-actions@0.37.0
|
||||
|
||||
docker-build-pull:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ validate-pull ]
|
||||
if: contains(github.event.pull_request.labels.*.name, 'docker')
|
||||
if: contains(github.event.pull_request.labels.*.name, 'docker') || contains(github.event.pull_request.labels.*.name, 'testers')
|
||||
outputs:
|
||||
commit-msg: ${{ steps.update-version.outputs.commit-msg }}
|
||||
version: ${{ steps.update-version.outputs.version }}
|
||||
steps:
|
||||
|
||||
- name: Create App Token
|
||||
uses: actions/create-github-app-token@v1
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ vars.APP_ID }}
|
||||
private-key: ${{ secrets.APP_TOKEN }}
|
||||
|
||||
- name: Check Out Repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
|
||||
- name: Update VERSION File
|
||||
id: update-version
|
||||
run: |
|
||||
value=$(cat VERSION)
|
||||
old_msg=$(git log -1 HEAD --pretty=format:%s)
|
||||
echo "commit-msg=${old_msg}" >> $GITHUB_OUTPUT
|
||||
version="${value%-build*}"
|
||||
|
||||
if [[ "$value" == *"-"* ]]; then
|
||||
value2="${value#*-build}"
|
||||
if [[ "$value2" == *"."* ]]; then
|
||||
build_value="${value2%.*}"
|
||||
part_value="$((${value2#*.} + 1))"
|
||||
else
|
||||
build_value="${value#*-build}"
|
||||
part_value="1"
|
||||
fi
|
||||
else
|
||||
build_value="0"
|
||||
part_value="1"
|
||||
fi
|
||||
|
||||
new_value="${version}-build${build_value}.${part_value}"
|
||||
echo "version=${new_value}" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "$new_value" > "VERSION"
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add VERSION
|
||||
git commit -m "Part: ${part_value}"
|
||||
git push
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
|
@ -62,10 +105,10 @@ jobs:
|
|||
context: ./
|
||||
file: ./Dockerfile
|
||||
build-args: |
|
||||
"BRANCH_NAME=${{ github.head_ref }}"
|
||||
"BRANCH_NAME=${{ github.event.pull_request.head.ref }}"
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: kometateam/kometa:${{ github.head_ref }}
|
||||
tags: kometateam/kometa:${{ github.event.pull_request.head.ref }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
|
@ -74,7 +117,7 @@ jobs:
|
|||
if: success()
|
||||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
title: "${{ vars.REPO_NAME }} ${{ github.head_ref }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
title: "${{ vars.REPO_NAME }} ${{ github.event.pull_request.head.ref }}: ${{ vars.TEXT_SUCCESS }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_SUCCESS }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
|
@ -88,10 +131,62 @@ jobs:
|
|||
with:
|
||||
webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
|
||||
message: ${{ vars.BUILD_FAILURE_ROLE }}
|
||||
title: "${{ vars.REPO_NAME }} ${{ github.head_ref }}: ${{ vars.TEXT_FAILURE }}"
|
||||
title: "${{ vars.REPO_NAME }} ${{ github.event.pull_request.head.ref }}: ${{ vars.TEXT_FAILURE }}"
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
|
||||
color: ${{ vars.COLOR_FAILURE }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
avatar_url: ${{ vars.BOT_IMAGE }}
|
||||
author: ${{ vars.DOCKER_NAME }}
|
||||
author_icon_url: ${{ vars.DOCKER_IMAGE }}
|
||||
|
||||
notify-testers:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.action == 'labeled' && github.event.label.name == 'tester'
|
||||
steps:
|
||||
|
||||
- name: Get Description
|
||||
id: get-description
|
||||
run: |
|
||||
body="${{ github.event.pull_request.body }}"
|
||||
body=$(echo "$body" | sed -n '/## Description/,/## Issues Fixed or Closed/{/## Description/b;/## Issues Fixed or Closed/b;p}')
|
||||
body=$(echo $body|tr -d '\n')
|
||||
echo "description=$body" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Discord Testers Notification
|
||||
uses: Kometa-Team/discord-notifications@master
|
||||
with:
|
||||
webhook_id_token: ${{ secrets.TESTERS_WEBHOOK }}
|
||||
message: "The Kometa team are requesting <@&917323027438510110> to assist with testing an upcoming feature/bug fix.
|
||||
|
||||
* For Local Git pull and checkout the `${{ github.event.pull_request.head.ref }}` branch
|
||||
|
||||
* For Docker use the `kometateam/kometa:${{ github.event.pull_request.head.ref }}` image to do your testing
|
||||
|
||||
Please report back either here or on the original GitHub Pull Request"
|
||||
title: ${{ github.event.pull_request.title }}
|
||||
description: ${{ steps.get-description.outputs.description }}
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/pull/${{ github.event.number }}
|
||||
color: ${{ vars.COLOR_SUCCESS }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
avatar_url: ${{ vars.BOT_IMAGE }}
|
||||
author: ${{ vars.GIT_NAME }}
|
||||
author_icon_url: ${{ vars.GIT_IMAGE }}
|
||||
|
||||
update-testers:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ docker-build-pull ]
|
||||
if: github.event.action == 'synchronize' && github.event.label.name == 'tester'
|
||||
steps:
|
||||
|
||||
- name: Discord Testers Notification
|
||||
uses: Kometa-Team/discord-notifications@master
|
||||
with:
|
||||
webhook_id_token: ${{ secrets.TESTERS_WEBHOOK }}
|
||||
message: "New Commit Pushed to `${{ github.event.pull_request.head.ref }}`: ${{ needs.docker-build-pull.outputs.version }}"
|
||||
description: ${{ needs.docker-build-pull.outputs.commit-msg }}
|
||||
url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/pull/${{ github.event.number }}
|
||||
color: ${{ vars.COLOR_SUCCESS }}
|
||||
username: ${{ vars.BOT_NAME }}
|
||||
avatar_url: ${{ vars.BOT_IMAGE }}
|
||||
author: ${{ vars.GIT_NAME }}
|
||||
author_icon_url: ${{ vars.GIT_IMAGE }}
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
2.0.2-build2
|
||||
2.0.2-build3
|
||||
|
|
|
@ -44,7 +44,13 @@ class Version:
|
|||
self.full = version_string.replace("develop", "build")
|
||||
version_parts = self.full.split("-build")
|
||||
self.main = version_parts[0]
|
||||
self.build = int(version_parts[1]) if len(version_parts) > 1 else 0
|
||||
self.build = 0
|
||||
self.part = 0
|
||||
if len(version_parts) > 1:
|
||||
sub_parts = str(version_parts[1]).split(".")
|
||||
self.build = int(sub_parts[0])
|
||||
if len(sub_parts) > 1:
|
||||
self.parts = int(sub_parts[1])
|
||||
|
||||
def __bool__(self):
|
||||
return self.full != "Unknown"
|
||||
|
|
Loading…
Reference in a new issue