Skip to content

release 3.4.0

release 3.4.0 #18

Workflow file for this run

name: Release on GitHub
## Run only when we push a tag. See "docs/release.md" instructions
on:
push:
tags:
- "v*"
env:
evomaster-version: 3.4.0
jdk-jar: 1.8
jdk-jpackage: 21
retention-days: 1
## Doesn't work, ie, use env in env
# installer-windows: evomaster-${evomaster-version}.msi
# installer-osx: evomaster-${evomaster-version}.dmg
# installer-debian: evomaster_${evomaster-version}-1_amd64.deb
jobs:
build-base:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK ${{env.jdk-jar}}
uses: actions/setup-java@v1
with:
java-version: ${{env.jdk-jar}}
- name: Cache Maven packages
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
# Don't run any test, as build should had already been verified (and it takes hours...)
run: mvn clean verify -DskipTests
env:
CI_env: GithubAction
- name: Upload evomaster.jar
uses: actions/upload-artifact@v4
with:
name: evomaster.jar
path: core/target/evomaster.jar
retention-days: ${{env.retention-days}}
if-no-files-found: error
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: webfuzzing/evomaster
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push Docker
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
installer-for-windows:
needs: build-base
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK ${{env.jdk-jpackage}}
uses: actions/setup-java@v1
with:
java-version: ${{env.jdk-jpackage}}
- name: Download fat jar
uses: actions/download-artifact@v4
with:
name: evomaster.jar
path: core/target
- name: Build installation file
shell: bash
run: bash makeExecutable.sh WINDOWS
- name: Upload installation file
uses: actions/upload-artifact@v4
with:
name: evomaster.msi
path: release/evomaster-${{env.evomaster-version}}.msi
retention-days: ${{env.retention-days}}
if-no-files-found: error
installer-for-osx:
needs: build-base
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK ${{env.jdk-jpackage}}
uses: actions/setup-java@v1
with:
java-version: ${{env.jdk-jpackage}}
- name: Download fat jar
uses: actions/download-artifact@v4
with:
name: evomaster.jar
path: core/target
- name: Build installation file
shell: bash
run: bash makeExecutable.sh OSX
- name: Upload installation file
uses: actions/upload-artifact@v4
with:
name: evomaster.dmg
path: release/evomaster-${{env.evomaster-version}}.dmg
retention-days: ${{env.retention-days}}
if-no-files-found: error
installer-for-debian:
needs: build-base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK ${{env.jdk-jpackage}}
uses: actions/setup-java@v1
with:
java-version: ${{env.jdk-jpackage}}
- name: Download fat jar
uses: actions/download-artifact@v4
with:
name: evomaster.jar
path: core/target
- name: Build installation file
shell: bash
run: bash makeExecutable.sh DEBIAN
- name: Upload installation file
uses: actions/upload-artifact@v4
with:
name: evomaster.deb
# JDK 17 and 21 use different suffixes... doesn't seem configurable :(
# path: release/evomaster_${{env.evomaster-version}}-1_amd64.deb
path: release/evomaster_${{env.evomaster-version}}_amd64.deb
retention-days: ${{env.retention-days}}
if-no-files-found: error
tagged-release:
needs: [installer-for-debian,installer-for-windows,installer-for-osx]
name: "Tagged Release"
runs-on: "ubuntu-latest"
steps:
- name: Download fat jar
uses: actions/download-artifact@v4
with:
name: evomaster.jar
- name: Download
uses: actions/download-artifact@v4
with:
name: evomaster.deb
- name: Download
uses: actions/download-artifact@v4
with:
name: evomaster.dmg
- name: Download
uses: actions/download-artifact@v4
with:
name: evomaster.msi
- name: Release
uses: softprops/action-gh-release@v1
with:
body: "See release notes at [release_notes.md](https://github.com/EMResearch/EvoMaster/blob/master/release_notes.md)."
prerelease: false
draft: false
fail_on_unmatched_files: true
files: |
evomaster.jar
evomaster-${{env.evomaster-version}}.msi
evomaster-${{env.evomaster-version}}.dmg
evomaster_${{env.evomaster-version}}_amd64.deb
# JDK 17 and 21 use different suffixes... doesn't seem configurable :(