forked from StarOpenSource/Engine
125 lines
3.7 KiB
YAML
125 lines
3.7 KiB
YAML
name: build-and-test
|
|
|
|
on:
|
|
- pull_request
|
|
- push
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: docker
|
|
container:
|
|
image: git.staropensource.de/infrastructure/actions-docker:java
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://code.forgejo.org/actions/checkout@v4
|
|
- name: Restore Gradle cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|
|
- name: Compile
|
|
run: ./gradlew --no-daemon jar javadocJar sourceJar
|
|
- name: Save Gradle cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|
|
- name: Upload library JARs
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: jars-libraries
|
|
path: |
|
|
**/build/libs/*.jar
|
|
!**/build/libs/*-javadoc.jar
|
|
!**/build/libs/*-sources.jar
|
|
if-no-files-found: error
|
|
- name: Upload API documentation JARs
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: jars-apidocs
|
|
path: |
|
|
**/build/libs/*-javadoc.jar
|
|
if-no-files-found: error
|
|
- name: Upload source JARs
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: jars-sources
|
|
path: |
|
|
**/build/libs/*-sources.jar
|
|
if-no-files-found: error
|
|
generate-javadoc:
|
|
runs-on: docker
|
|
container:
|
|
image: git.staropensource.de/infrastructure/actions-docker:java
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://code.forgejo.org/actions/checkout@v4
|
|
- name: Restore Gradle cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|
|
- name: Generate javadoc
|
|
run: ./gradlew --no-daemon javadoc javadocAll
|
|
- name: Save Gradle cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|
|
- name: Upload separate javadoc
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: javadoc-separate
|
|
path: |
|
|
**/build/docs/javadoc/*
|
|
if-no-files-found: error
|
|
- name: Upload combined javadoc
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: javadoc-combined
|
|
path: |
|
|
build/docs/javadoc/*
|
|
if-no-files-found: error
|
|
test:
|
|
runs-on: docker
|
|
container:
|
|
image: git.staropensource.de/infrastructure/actions-docker:java
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://code.forgejo.org/actions/checkout@v4
|
|
- name: Restore Gradle cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|
|
- name: Run tests
|
|
run: ./gradlew --no-daemon test
|
|
- name: Save Gradle cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
gradle-${{ runner.os }}-
|