mirror of
https://github.com/gotson/komga.git
synced 2025-12-18 14:35:21 +01:00
ci: add inputs to replay parts of the release workflow when it fails
This commit is contained in:
parent
37ec4362a8
commit
a8b37c7da2
1 changed files with 93 additions and 10 deletions
103
.github/workflows/ci.yml
vendored
103
.github/workflows/ci.yml
vendored
|
|
@ -23,6 +23,22 @@ on:
|
|||
- 'major'
|
||||
- 'minor'
|
||||
- 'patch'
|
||||
force_release:
|
||||
description: 'Force release (in case it went wrong)'
|
||||
default: false
|
||||
type: boolean
|
||||
github_release:
|
||||
description: 'Create Github Release'
|
||||
default: true
|
||||
type: boolean
|
||||
docker_release:
|
||||
description: 'Push Docker images'
|
||||
default: true
|
||||
type: boolean
|
||||
msstore_release:
|
||||
description: 'Release to the MS Store'
|
||||
default: true
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
test:
|
||||
|
|
@ -81,7 +97,7 @@ jobs:
|
|||
|
||||
version:
|
||||
runs-on: macos-latest
|
||||
if: inputs.perform_release
|
||||
if: inputs.perform_release || inputs.force_release
|
||||
outputs:
|
||||
version_current: ${{ steps.versions.outputs.version_current }}
|
||||
version_next: ${{ steps.versions.outputs.version_next }}
|
||||
|
|
@ -110,70 +126,97 @@ jobs:
|
|||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ test, webui, version ]
|
||||
if: needs.version.outputs.should_release
|
||||
if: needs.version.outputs.should_release || inputs.force_release
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Display versions
|
||||
run: |
|
||||
echo "Current version: ${{ needs.version.outputs.version_current }}, should release: ${{ needs.version.outputs.version_next }}"
|
||||
|
||||
- name: Update version in gradle.properties
|
||||
if: needs.version.outputs.should_release #only redo if the version changed
|
||||
run: sed -i -e "s/version=.*/version=${{ needs.version.outputs.version_next }}/" gradle.properties
|
||||
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16'
|
||||
cache: 'npm'
|
||||
cache-dependency-path: komga-webui/package-lock.json
|
||||
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '19'
|
||||
java-package: 'jdk'
|
||||
distribution: 'temurin'
|
||||
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '17'
|
||||
java-package: 'jdk'
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: :komga:prepareThymeLeaf :komga:bootJar :komga-tray:jar
|
||||
env:
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
|
||||
- name: Generate OpenAPI docs
|
||||
uses: gradle/gradle-build-action@v2
|
||||
if: needs.version.outputs.should_release #only redo if the version changed
|
||||
with:
|
||||
arguments: :komga:generateOpenApiDocs
|
||||
- name: Generate Changelog append
|
||||
|
||||
- name: JReleaser Changelog append
|
||||
uses: gradle/gradle-build-action@v2
|
||||
if: needs.version.outputs.should_release #only redo if the version changed
|
||||
with:
|
||||
arguments: jreleaserChangelog
|
||||
env:
|
||||
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: JReleaser Changelog output
|
||||
if: always() && needs.version.outputs.should_release
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jreleaser-changelog
|
||||
path: |
|
||||
build/jreleaser/trace.log
|
||||
build/jreleaser/output.properties
|
||||
|
||||
- name: Release commit and push
|
||||
uses: EndBug/add-and-commit@v9
|
||||
if: needs.version.outputs.should_release #only redo if the version changed
|
||||
with:
|
||||
message: 'chore(release): ${{ needs.version.outputs.version_next }} [skip ci]'
|
||||
tag: 'v${{ needs.version.outputs.version_next }}'
|
||||
default_author: github_actions
|
||||
- name: Run Conveyor
|
||||
|
||||
- name: Conveyor build apps
|
||||
uses: hydraulic-software/conveyor/actions/build@v11.4
|
||||
if: inputs.github_release
|
||||
with:
|
||||
command: -f conveyor.ci.conf make site -o ./output/release
|
||||
signing_key: ${{ secrets.CONVEYOR_SIGNING_KEY }}
|
||||
|
|
@ -181,33 +224,73 @@ jobs:
|
|||
env:
|
||||
APPLE_ASP: ${{ secrets.APPLE_ASP }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
|
||||
- name: Adjust Conveyor output
|
||||
if: inputs.github_release
|
||||
run: |
|
||||
mkdir ./output/site
|
||||
mv ./output/release/download.html ./output/site/index.html
|
||||
mv ./output/release/icon.svg ./output/site/
|
||||
|
||||
- name: Deploy download page to Github Pages
|
||||
if: inputs.github_release
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./output/site
|
||||
cname: download.komga.org
|
||||
- name: JReleaser full release
|
||||
|
||||
- name: JReleaser Release
|
||||
if: inputs.github_release
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: jreleaserFullRelease
|
||||
arguments: jreleaserRelease
|
||||
env:
|
||||
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: JReleaser release output
|
||||
if: always()
|
||||
- name: JReleaser Release output
|
||||
if: always() && inputs.github_release
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jreleaser-release
|
||||
path: |
|
||||
build/jreleaser/trace.log
|
||||
build/jreleaser/output.properties
|
||||
- name: Run Conveyor - Microsoft Store
|
||||
uses: hydraulic-software/conveyor/actions/build@v11.3
|
||||
|
||||
- name: JReleaser Announce
|
||||
if: inputs.github_release
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: jreleaserAnnounce
|
||||
env:
|
||||
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: JReleaser Announce output
|
||||
if: always() && inputs.github_release
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jreleaser-announce
|
||||
path: |
|
||||
build/jreleaser/trace.log
|
||||
build/jreleaser/output.properties
|
||||
|
||||
- name: JReleaser Publish
|
||||
if: inputs.docker_release
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: jreleaserPublish
|
||||
env:
|
||||
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: JReleaser Publish output
|
||||
if: always() && inputs.docker_release
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: jreleaser-publish
|
||||
path: |
|
||||
build/jreleaser/trace.log
|
||||
build/jreleaser/output.properties
|
||||
|
||||
- name: Conveyor - publish to Microsoft Store
|
||||
uses: hydraulic-software/conveyor/actions/build@v11.4
|
||||
if: inputs.msstore_release
|
||||
with:
|
||||
command: -f conveyor.msstore.ci.conf make ms-store-release -o ./output/msstore
|
||||
signing_key: ${{ secrets.CONVEYOR_SIGNING_KEY }}
|
||||
|
|
|
|||
Loading…
Reference in a new issue