merge develop #4
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: Deployment | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
find_version: | |
name: Find Release Version | |
runs-on: ubuntu-latest | |
outputs: | |
RELEASE_VERSION: ${{ steps.step_find.outputs.RELEASE_VERSION }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
cache: 'maven' | |
- name: 'Find velease version' | |
run: echo "RELEASE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT | |
id: step_find | |
deploy_to_maven: | |
name: Deploy to Maven Repository | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
cache: 'maven' | |
- name: Publish package | |
run: mvn --batch-mode deploy -Dmaven.test.skip=true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: 'iguana-jar' | |
path: 'target/' | |
compile_native: | |
name: Compile Native Executable | |
runs-on: ubuntu-latest | |
needs: find_version | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up GraalVM | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: 22 | |
components: native-image | |
cache: maven | |
- name: 'Compile native-binary' | |
run: 'mvn -Dagent=true -Pnative package' | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'iguana-native' | |
path: 'target/iguana' | |
if-no-files-found: error | |
deploy_docs: | |
name: Deploy Documentation | |
runs-on: ubuntu-latest | |
needs: find_version | |
env: | |
RELEASE_VERSION: ${{ needs.find_version.outputs.RELEASE_VERSION }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
cache: 'maven' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
- run: pip install mkdocs-material | |
- run: pip install mkdocs-macros-plugin | |
- run: sed -i "s/\$RELEASE_VERSION/${{ env.RELEASE_VERSION }}/g" mkdocs.yml | |
- run: mkdocs build -d site/${{ env.RELEASE_VERSION }} | |
- run: mvn javadoc:javadoc | |
- name: Deploy Site | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./site/${{ env.RELEASE_VERSION }} | |
destination_dir: ./docs/${{ env.RELEASE_VERSION }} | |
- name: Deploy Site | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./site/${{ env.RELEASE_VERSION }} | |
destination_dir: ./docs/latest | |
- name: Deploy Javadoc | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./javadoc/${{ env.RELEASE_VERSION }}/apidocs | |
destination_dir: ./javadoc/${{ env.RELEASE_VERSION }} | |
- name: Deploy Javadoc | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./javadoc/${{ env.RELEASE_VERSION }}/apidocs | |
destination_dir: ./javadoc/latest | |
- name: Find Ontology Version | |
run: echo "ONTOLOGY_VERSION=$(grep 'versionIRI' schema/iguana.owx | grep -Po '[0-9]+.[0-9]+.[0-9]+')" >> $GITHUB_OUTPUT | |
id: find_ontology_version | |
- name: Fetch Ontologies | |
run: git fetch && git checkout origin/gh-pages ontology/ | |
- run: mkdir -p ontology/${{ steps.find_ontology_version.outputs.ONTOLOGY_VERSION }} | |
- run: cp schema/iguana.owx ontology/${{ steps.find_ontology_version.outputs.ONTOLOGY_VERSION }}/iguana.owx | |
- run: cp schema/iguana.owx ontology/iguana.owx | |
- name: Deploy Ontology | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./ontology/ | |
destination_dir: ./ontology/ | |
deploy_gh_release: | |
name: Publish GitHub Release | |
runs-on: ubuntu-latest | |
needs: [compile_native, deploy_to_maven, find_version] | |
env: | |
RELEASE_VERSION: ${{ needs.find_version.outputs.RELEASE_VERSION }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifacts from previous jobs | |
uses: actions/download-artifact@v4 | |
with: | |
path: artifacts/ | |
merge-multiple: true | |
- name: Prepare files | |
run: | | |
mkdir iguana | |
cp artifacts/start-iguana.sh iguana/ | |
cp artifacts/iguana.jar iguana/iguana.jar | |
cp artifacts/iguana iguana/iguana | |
cp example-suite.yml iguana/ | |
zip -r iguana-${{ env.RELEASE_VERSION }}.zip iguana/ | |
- name: Create Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: v${{ env.RELEASE_VERSION }} | |
name: version ${{ env.RELEASE_VERSION }} | |
draft: false | |
prerelease: false | |
body: "" | |
fail_on_unmatched_files: true | |
make_latest: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: | | |
iguana-${{ env.RELEASE_VERSION }}.zip | |
artifacts/iguana.jar | |
artifacts/iguana |