Nigthly release #1033
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Nigthly release | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: develop | |
fetch-depth: 10 | |
- uses: marceloprado/has-changed-path@v1 | |
id: check-if-changed | |
with: | |
paths: .github/workflows src/ res/ pom.xml .install4j/ .mvn/ | |
- name: Set up JDK 20 | |
if: steps.check-if-changed.outputs.changed == 'true' | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 20 | |
- name: Cache local Maven repository | |
if: steps.check-if-changed.outputs.changed == 'true' | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Build and test with Maven | |
if: steps.check-if-changed.outputs.changed == 'true' | |
run: ./mvnw -B package | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: target | |
path: target/ | |
- name: SonarCloud Scan | |
if: steps.check-if-changed.outputs.changed == 'true' | |
run: ./mvnw -B org.jacoco:jacoco-maven-plugin:prepare-agent sonar:sonar -Dsonar.projectKey=mediathekview_MediathekView -Dsonar.organization=mediathekview -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=$SONAR_TOKEN | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
outputs: | |
haschanged: "${{steps.check-if-changed.outputs.changed}}" | |
build: | |
runs-on: ubuntu-latest | |
needs: test | |
if: needs.test.outputs.haschanged == 'true' | |
strategy: | |
matrix: | |
include: | |
- os: linux | |
architecture: 64bit | |
maven_profiles: "linux_64bit,install4j" | |
- os: arm | |
architecture: 64bit | |
maven_profiles: "!linux_64bit,linux_arm_64bit,install4j" | |
- os: windows | |
architecture: 64bit | |
maven_profiles: "!linux_64bit,windows_64bit,install4j" | |
# - os: windows | |
# architecture: 32bit | |
# maven_profiles: "windows32,!64bit,32bit,install4j,!linux" | |
- os: macOS | |
architecture: 64bit | |
maven_profiles: "!linux_64bit,mac_intel" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: develop | |
- name: Set up JDK 20 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 20 | |
- uses: AdoptOpenJDK/install-jdk@v1 | |
with: | |
version: '8' | |
targets: 'INSTALL4J_JAVA_HOME' | |
- name: Download install4j | |
uses: wei/curl@v1 | |
with: | |
args: -fsSL 'https://download-gcdn.ej-technologies.com/install4j/install4j_unix_9_0_7.tar.gz' --output install4j.tar.gz | |
- name: Extract install4j | |
run: tar -zxvf install4j.tar.gz | |
- name: Cache local Maven repository | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Add install4j license | |
run: ./mvnw clean install4j:install-license -Pinstall4j | |
env: | |
LICENSE_KEY_9: ${{ secrets.LICENSE_KEY_9 }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: target | |
- name: Building ${{ matrix.os }} ${{ matrix.architecture }} with Maven | |
run: ./mvnw -B package -P${{ matrix.maven_profiles }} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn | |
- name: Building AppImage | |
if: matrix.os == 'linux' | |
run: scripte/appimage.sh | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: release-target | |
path: | | |
target/media/ | |
target/*.AppImage | |
# publish: | |
# runs-on: ubuntu-latest | |
# needs: [build,test] | |
# if: needs.test.outputs.haschanged == 'true' | |
# steps: | |
# - uses: actions/checkout@v2 | |
# with: | |
# ref: develop | |
# - name: Set up JDK 15 | |
# uses: actions/setup-java@v1 | |
# with: | |
# java-version: 15 | |
# - name: Get version | |
# run: echo "VERSION=$( ./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout )" >> $GITHUB_ENV | |
# - name: Set current date | |
# run: echo "NOW=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_ENV | |
# | |
# - uses: actions/download-artifact@v2 | |
# with: | |
# name: release-target | |
# - uses: actions/upload-artifact@v2 | |
# with: | |
# name: release-artifacts | |
# path: | | |
# media/*.zip | |
# media/*.gz | |
# *.AppImage | |
# media/MediathekView*.exe | |
# media/*.deb | |
# media/*.rpm | |
# media/MediathekView*.sh | |
# - run: echo "${{env.VERSION}}_${{env.NOW}}" | |
# - name: Release | |
# uses: softprops/action-gh-release@v1 | |
# with: | |
# name: "${{env.VERSION}}_${{env.NOW}}" | |
# body_path: CHANGELOG.md | |
# prerelease: true | |
# draft: true | |
# tag_name: "${{env.VERSION}}_${{env.NOW}}" | |
# files: | | |
# media/*.zip | |
# media/*.gz | |
# *.AppImage | |
# media/MediathekView*.exe | |
# media/*.deb | |
# media/*.rpm | |
# media/MediathekView*.sh | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Deleting build artifacts | |
# uses: geekyeggo/delete-artifact@v1 | |
# with: | |
# name: | | |
# release-target | |
# target |