mirror of
https://github.com/gotson/komga.git
synced 2026-04-28 01:44:08 +02:00
Update Github actions to push to GHCR and add labels to docker containers so that renovate etc can find the source
105 lines
2.9 KiB
YAML
105 lines
2.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'komga-webui/src/locales/*'
|
|
push:
|
|
branches-ignore:
|
|
- 'dependabot/**'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
java: [ 8, 11, 17, 18 ]
|
|
name: Test JDK ${{ matrix.java }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
java-version: ${{ matrix.java }}
|
|
java-package: 'jdk'
|
|
distribution: 'temurin'
|
|
- name: Build
|
|
uses: gradle/gradle-build-action@v2
|
|
with:
|
|
arguments: build
|
|
- name: Upload Unit Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: test-results-jdk-${{ matrix.java }}
|
|
path: komga/build/test-results/
|
|
- name: Upload Unit Test Reports
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: test-reports-jdk-${{ matrix.java }}
|
|
path: komga/build/reports/tests/
|
|
|
|
webui:
|
|
runs-on: ubuntu-latest
|
|
name: Test webui builds
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16'
|
|
cache: 'npm'
|
|
cache-dependency-path: |
|
|
package-lock.json
|
|
komga-webui/package-lock.json
|
|
- name: npm install
|
|
working-directory: komga-webui
|
|
run: npm install
|
|
- name: npm build
|
|
working-directory: komga-webui
|
|
run: npm run build
|
|
- name: npm test
|
|
working-directory: komga-webui
|
|
run: npm run test:unit
|
|
|
|
release:
|
|
name: Semantic Release
|
|
runs-on: ubuntu-latest
|
|
needs: [ test, webui ]
|
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16'
|
|
cache: 'npm'
|
|
cache-dependency-path: |
|
|
package-lock.json
|
|
komga-webui/package-lock.json
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
java-version: '8'
|
|
java-package: 'jdk'
|
|
distribution: 'temurin'
|
|
cache: 'gradle'
|
|
- name: Install dependencies
|
|
run: npm install --only=production
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: npx semantic-release
|