Skip to content
257 changes: 168 additions & 89 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
@@ -1,106 +1,185 @@
# 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: Build

on:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
push:
# branches: [ main ]
# branches: [main]
pull_request:
branches: [ main ]
branches: [main]

jobs:
versioning:
runs-on: ubuntu-latest
outputs:
semVer: ${{ steps.gitversion.outputs.semVer }}

steps:
- name: Checkout project
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v4.3.3
with:
versionSpec: '6.6.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v4.3.3

build:
needs: [versioning]
runs-on: ubuntu-latest

steps:
- name: Checkout project
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'adopt'

- name: Build with Maven
run: |
mvn versions:set "-DnewVersion=${{ needs.versioning.outputs.semVer }}"
mvn -B package -e --file pom.xml

- name: Check status
run: |
set
echo -n "Current directory: "
pwd
find

- uses: actions/upload-artifact@v7
with:
name: OoliteAddonScanner
path: target/OoliteAddonScanner-${{ needs.versioning.outputs.semVer }}-executable.*

test:
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Install required packages
run: |
sudo apt-get install -y graphviz

- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'adopt'

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: OoliteAddonScanner
path: artifacts

- name: extract distribution
run: |
unzip artifacts/OoliteAddonScanner*.zip

- name: check filesystem
run: |
find

- name: Restore expansions cache
id: cache-restore
uses: actions/cache/restore@v3
with:
path: |
expansion-cache
key: ${{ runner.os }}-expansion_cache

- name: Run example scan
run: |
B=$(basename "OoliteAddonScanner*")
java -jar $B/$B.jar --out target/OoliteExpansionIndex --cache expansion-cache --maxExpansion 20

- uses: actions/upload-artifact@v7
with:
name: ExampleCatalog
path: target/OoliteExpansionIndex

- name: Save Expansions Cache
id: cache-save
uses: actions/cache/save@v3
with:
path: |
expansion-cache
key: ${{ runner.os }}-expansion_cache

release:
needs: [versioning, build, test]
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v4.3.3
with:
versionSpec: '6.6.x'

- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'adopt'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v4.3.3

- name: Build with Maven
run: |
mvn versions:set "-DnewVersion=${{ env.GitVersion_SemVer }}"
mvn -B package -e --file pom.xml

- name: Check status
run: |
set
echo -n "Current directory: "
pwd
find

- uses: actions/upload-artifact@v7
with:
name: OoliteAddonScanner
path: target/OoliteAddonScanner-${{ env.GitVersion_SemVer }}-executable.zip

- name: Remove old prereleases
if: github.ref != 'refs/heads/main'
uses: s00d/delete-older-releases@0.2.1
with:
#repo: <owner>/<repoName> # defaults to current repo
keep_latest: 3
delete_tag_pattern: v
delete_type: 'prerelease'
delete_branch: '${{ github.ref_name }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Prerelease
if: github.ref != 'refs/heads/main'
id: create_prerelease
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "v${{ env.GitVersion_SemVer }}"
prerelease: true
title: "OoliteAddonScanner v${{ env.GitVersion_SemVer }}"
files: |
target/*.zip
target/*.tar.gz

- name: Remove old releases
if: github.ref == 'refs/heads/main'
uses: s00d/delete-older-releases@0.2.1
with:
#repo: <owner>/<repoName> # defaults to current repo
keep_latest: 3
delete_tag_pattern: v
delete_type: 'release'
delete_branch: 'main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Release
if: github.ref == 'refs/heads/main'
id: create_release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "v${{ env.GitVersion_SemVer }}"
prerelease: false
title: "OoliteAddonScanner v${{ env.GitVersion_SemVer }}"
files: |
target/*.zip
target/*.tar.gz
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: OoliteAddonScanner
path: artifacts

- name: check filesystem
run: |
find

- name: Remove old prereleases
if: github.ref != 'refs/heads/main'
uses: s00d/delete-older-releases@0.2.1
with:
# repo: <owner>/<repoName> # defaults to current repo
keep_latest: 3
delete_tag_pattern: v
delete_type: 'prerelease'
delete_branch: '${{ github.ref_name }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Prerelease
if: github.ref != 'refs/heads/main'
id: create_prerelease
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "v${{ needs.versioning.outputs.semVer }}"
prerelease: true
title: "OoliteAddonScanner v${{ needs.versioning.outputs.semVer }}"
files: |
artifacts/*.zip
artifacts/*.tar.gz

- name: Remove old releases
if: github.ref == 'refs/heads/main'
uses: s00d/delete-older-releases@0.2.1
with:
# repo: <owner>/<repoName> # defaults to current repo
keep_latest: 3
delete_tag_pattern: v
delete_type: 'release'
delete_branch: 'main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Release
if: github.ref == 'refs/heads/main'
id: create_release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "v${{ needs.versioning.outputs.semVer }}"
prerelease: false
title: "OoliteAddonScanner v${{ needs.versioning.outputs.semVer }}"
files: |
target/*.zip
target/*.tar.gz
6 changes: 3 additions & 3 deletions nbactions-Indexer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<properties>
<exec.vmArgs></exec.vmArgs>
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.appArgs>--out target/output --maxExpansion 290</exec.appArgs>
<exec.appArgs>--out target/output --maxExpansion 2900</exec.appArgs>
<exec.mainClass>com.chaudhuri.ooliteaddonscanner2.Main</exec.mainClass>
<exec.executable>java</exec.executable>
</properties>
Expand All @@ -29,7 +29,7 @@
<properties>
<exec.vmArgs>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</exec.vmArgs>
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.appArgs>--out target/output --maxExpansion 290</exec.appArgs>
<exec.appArgs>--out target/output --maxExpansion 2900</exec.appArgs>
<exec.mainClass>com.chaudhuri.ooliteaddonscanner2.Main</exec.mainClass>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
Expand All @@ -49,7 +49,7 @@
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.mainClass>com.chaudhuri.ooliteaddonscanner2.Main</exec.mainClass>
<exec.executable>java</exec.executable>
<exec.appArgs>--out target/output --maxExpansion 290</exec.appArgs>
<exec.appArgs>--out target/output --maxExpansion 2900</exec.appArgs>
</properties>
</action>
</actions>
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@ public static void readOolite(ExpansionCache cache, Registry registry) throws IO
String url = null;
Map<String, Object> manifest = null;

// find out the latest Download URL from Github
try {
manifest = cache.getOoliteManifest(tag);
} catch (Exception e) {
Expand All @@ -323,6 +324,8 @@ public static void readOolite(ExpansionCache cache, Registry registry) throws IO
} catch (Exception e) {
throw new IllegalStateException("Could not get download url for Oolite from manifest", e);
}

// now download Oolite from that URL
try (InputStream olitezip = cache.getPluginInputStream(url); ZipInputStream zin = new ZipInputStream(olitezip)) {
Expansion oxp = new Expansion();
oxp.setDownloadUrl(url);
Expand Down
Loading
Loading