Skip to content

CI

CI #163

Workflow file for this run

name: CI
on:
push:
branches:
- main
- 'testing/**'
- 'feature/**'
- 'hotfix/**'
# Run pipeline for release tags
tags:
- 'v*.*.*'
schedule:
# Weekly builds on Monday morning 5:42
# Github doc:
# "The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs.
# High load times include the start of every hour.
# To decrease the chance of delay, schedule your workflow to run at a different time of the hour."
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
- cron: '42 5 * * 1'
jobs:
build:
runs-on: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.9
- name: Build with Maven
run: mvn --batch-mode --update-snapshots package
- name: Upload updatesite artifact
uses: actions/upload-artifact@v4
with:
name: org.emoflon.ilp.updatesite
path: org.emoflon.ilp.updatesite/target/org.emoflon.ilp.updatesite-*.zip
- name: Upload plugin artifacts
uses: actions/upload-artifact@v4
with:
name: org.emoflon.ilp
path: org.emoflon.ilp.updatesite/target/repository/plugins/org.emoflon.ilp*.jar
doc:
runs-on: [ubuntu-22.04]
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.9
- name: Create JavaDoc with Maven
run: mvn --batch-mode --update-snapshots site
- name: Upload doc artifact
uses: actions/upload-artifact@v4
with:
name: javadoc
path: org.emoflon.ilp/target/site
test:
runs-on: [ubuntu-22.04]
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Install GLPK
run: |
sudo apt-get install -yq glpk-utils libglpk-dev glpk-doc libglpk-java libglpk40
sudo cp /usr/lib/x86_64-linux-gnu/jni/libglpk_java.* /usr/lib/
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.9
- name: Test with Maven
run: mvn --batch-mode --update-snapshots clean -Dtest=BasicTest,GlpkTest,SolverTest -DfailIfNoTests=false verify
create-release:
runs-on: [ubuntu-22.04]
needs: [build, test, doc]
# Only run on pushed tags (and explicitely ignore scheduled runs)
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') && github.event_name != 'schedule'
steps:
- name: Install dependencies
run: sudo apt-get install -yq zip unzip
- name: Collect artifacts
uses: actions/download-artifact@master
- name: Create javadoc site ZIP archive
run: |
zip -qr javadoc.zip javadoc
- name: Release emoflon-ilp
uses: softprops/action-gh-release@v2
with:
files: |
org.emoflon.ilp.updatesite/org.emoflon.ilp.updatesite-*.zip
org.emoflon.ilp/org.emoflon.ilp*.jar
javadoc.zip