Merge pull request #124 from kieler/mka/model-parsing #309
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
# This workflow will build a Java project with Maven | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven | |
name: CI | |
on: | |
push: | |
branches: | |
- master | |
- 'release-*' | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: # manual triggering, for debugging purposes | |
jobs: | |
buildAll: | |
name: Build and Test | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout repositories | |
- name: Checkout Semantics | |
uses: actions/checkout@v4 | |
- name: Checkout Models | |
uses: actions/checkout@v4 | |
with: | |
repository: kieler/models | |
path: models | |
# Provide Java | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
# Configure maven artifact caching | |
- name: Cache local Maven repository | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('.github/workflows/*.*', '**/pom.xml', '**/META-INF/MANIFEST.MF', 'build/de.cau.cs.kieler.semantics.targetplatform/de.cau.cs.kieler.semantics.targetplatform.target') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Maven build products | |
- name: Build Products and Run Tests | |
# Start with xvfb for testing diagram generation with piccolo (see Klighd test config) | |
run: | |
Xvfb -ac > /dev/null 2>&1 & mvn --update-snapshots --fail-at-end clean verify -P semantics.all --file build/pom.xml | |
env: | |
models_repository: '[${{github.workspace}}/models]' | |
MAVEN_OPTS: '-Xmx2048M' | |
DISPLAY: ':0' | |
# Produce test report | |
- name: Produce test report | |
uses: dorny/test-reporter@v1 | |
if: always() | |
with: | |
name: Test Report | |
path: test/*/target/surefire-reports/*.xml | |
reporter: java-junit | |
fail-on-error: true | |
max-annotations: '50' | |
##################################### ALL THE ARTIFACTS ##################################### | |
# Archive Repository | |
- name: Archive Semantics Repository Artifact | |
if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Semantics Repository Artifact | |
path: build/de.cau.cs.kieler.semantics.repository/target/repository/ | |
if-no-files-found: error | |
# Collect and Archive all Products | |
- name: Collect All Products | |
if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-') }} | |
run: | | |
mkdir products | |
cp -r build/de.cau.cs.kieler.semantics.product.repository/target/products/sccharts_rca_* products/ | |
mkdir products/cli | |
cp -r build/de.cau.cs.kieler.kicool.cli/target/exe/* products/cli | |
cp -r build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/* products/cli | |
cp -r build/de.cau.cs.kieler.sccharts.cli/target/exe/* products/cli | |
mkdir products/ls | |
cp build/de.cau.cs.kieler.language.server.cli/target/kieler-language-server.jar products/ls | |
- name: Archive All Products | |
if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: All Semantics Products | |
path: products | |
if-no-files-found: error | |
# Archive Eclipse RCA | |
- name: Archive KIELER Semantics RCA Windows | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER RCA Windows | |
path: build/de.cau.cs.kieler.semantics.product.repository/target/products/sccharts_rca_*-win32.win32.x86_64.zip | |
if-no-files-found: error | |
- name: Archive KIELER Semantics RCA Linux | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER RCA Linux | |
path: build/de.cau.cs.kieler.semantics.product.repository/target/products/sccharts_rca_*-linux.gtk.x86_64.tar.gz | |
if-no-files-found: error | |
- name: Archive KIELER Semantics RCA MacOS | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER RCA MacOS | |
path: build/de.cau.cs.kieler.semantics.product.repository/target/products/sccharts_rca_*-macosx.cocoa.*.tar.gz | |
if-no-files-found: error | |
# Kieler Compiler CLI | |
- name: Archive KIELER Compiler CLI Jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER Compiler CLI Jar | |
path: build/de.cau.cs.kieler.kicool.cli/target/exe/kico.jar | |
if-no-files-found: error | |
# - name: Archive KIELER Compiler CLI Windows | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler CLI Windows | |
# path: build/de.cau.cs.kieler.kicool.cli/target/exe/kico-win.bat | |
# if-no-files-found: error | |
# - name: Archive KIELER Compiler CLI Linux | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler CLI Linux | |
# path: build/de.cau.cs.kieler.kicool.cli/target/exe/kico-linux | |
# if-no-files-found: error | |
# - name: Archive KIELER Compiler CLI MacOS | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler CLI MacOS | |
# path: build/de.cau.cs.kieler.kicool.cli/target/exe/kico-osx | |
# if-no-files-found: error | |
# Kieler Compiler Diagrams CLI | |
- name: Archive KIELER Compiler Diagrams CLI Windows Jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER Compiler Diagrams CLI Windows Jar | |
path: build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia.win.jar | |
if-no-files-found: error | |
- name: Archive KIELER Compiler Diagrams CLI Linux Jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER Compiler Diagrams CLI Linux Jar | |
path: build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia.linux.jar | |
if-no-files-found: error | |
- name: Archive KIELER Compiler Diagrams CLI MacOS Jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER Compiler Diagrams CLI MacOS Jar | |
path: | | |
build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia.osx.jar | |
build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia.osx.aarch64.jar | |
if-no-files-found: error | |
# - name: Archive KIELER Compiler Diagrams CLI Windows | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler Diagrams CLI Windows | |
# path: build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia-win.bat | |
# if-no-files-found: error | |
# - name: Archive KIELER Compiler Diagrams CLI Linux | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler Diagrams CLI Linux | |
# path: build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia-linux | |
# if-no-files-found: error | |
# - name: Archive KIELER Compiler Diagrams CLI MacOS | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: KIELER Compiler Diagrams CLI MacOS | |
# path: build/de.cau.cs.kieler.kicool.klighd.cli/target/exe/kicodia-osx | |
# if-no-files-found: error | |
# SCCharts Compiler CLI | |
- name: Archive SCCharts Compiler CLI Jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: SCCharts Compiler CLI Jar | |
path: build/de.cau.cs.kieler.sccharts.cli/target/exe/scc.jar | |
if-no-files-found: error | |
# - name: Archive SCCharts Compiler CLI Windows | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: SCCharts Compiler CLI Windows | |
# path: build/de.cau.cs.kieler.sccharts.cli/target/exe/scc-win.bat | |
# if-no-files-found: error | |
# - name: Archive SCCharts Compiler CLI Linux | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: SCCharts Compiler CLI Linux | |
# path: build/de.cau.cs.kieler.sccharts.cli/target/exe/scc-linux | |
# if-no-files-found: error | |
# - name: Archive SCCharts Compiler CLI MacOS | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: SCCharts Compiler CLI MacOS | |
# path: build/de.cau.cs.kieler.sccharts.cli/target/exe/scc-osx | |
# if-no-files-found: error | |
# Kieler Language Server | |
- name: Archive KIELER Language Server | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KIELER Language Server | |
path: build/de.cau.cs.kieler.language.server.cli/target/kieler-language-server.jar | |
if-no-files-found: error | |
testMac: | |
name: Test CLI (MacOS) | |
runs-on: macos-latest | |
needs: buildAll | |
steps: | |
# Setup | |
- uses: actions/checkout@v2 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Cache local Maven repository | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('.github/workflows/*.*', '**/pom.xml', '**/META-INF/MANIFEST.MF', 'build/de.cau.cs.kieler.semantics.targetplatform/de.cau.cs.kieler.semantics.targetplatform.target') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Maven test CLI | |
- name: Tests CLI | |
run: mvn --update-snapshots clean verify -P semantics.cli.test --file build/pom.xml | |
env: | |
MAVEN_OPTS: '-Xmx2048M' | |
testWin: | |
name: Test CLI (Windows) | |
runs-on: windows-latest | |
needs: buildAll | |
steps: | |
# Setup | |
- uses: actions/checkout@v2 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Cache local Maven repository | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('.github/workflows/*.*', '**/pom.xml', '**/META-INF/MANIFEST.MF', 'build/de.cau.cs.kieler.semantics.targetplatform/de.cau.cs.kieler.semantics.targetplatform.target') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Maven test CLI | |
- name: Tests CLI | |
run: mvn --update-snapshots clean verify -P semantics.cli.test --file build/pom.xml | |
env: | |
MAVEN_OPTS: '-Xmx2048M' |