opendis7-java v7.0.35 #4
Workflow file for this run
This file contains hidden or 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: Publish Release | |
| on: | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| jobs: | |
| build-and-release: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: eclipse-temurin:17-jdk | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install Ant and tools | |
| run: | | |
| apt-get update | |
| apt-get install -y ant zip git gh | |
| - name: Build | |
| run: ant all | |
| - name: Package javadoc for browsing | |
| run: | | |
| cd dist/javadoc && zip -r ../opendis7-javadoc.zip . | |
| - name: Create release bundle | |
| run: | | |
| mkdir -p release | |
| cp dist/opendis7-*.jar release/ | |
| cp dist/license.txt release/ | |
| cp dist/license.html release/ | |
| cd release && zip -r ../opendis7-release.zip . | |
| - name: Generate release description | |
| run: | | |
| cat > /tmp/release-body.md <<'RELEASE_EOF' | |
|  | |
| # opendis7-java Distribution Products | |
| Complete type-safe open-source Java implementation of the IEEE Distributed Interactive Simulation (DIS) Protocol, including all Protocol Data Units (PDUs), entity enumerations, and supporting utilities. | |
| ## Downloads | |
| | Asset | Description | | |
| |-------|-------------| | |
| | `opendis7-full.jar` | Complete library — PDUs, enumerations, utilities, and javadoc in one jar | | |
| | `opendis7-pdus-classes.jar` | PDU compiled classes only | | |
| | `opendis7-pdus-source.jar` | PDU Java source files | | |
| | `opendis7-enumerations-classes.jar` | Enumeration compiled classes (from opendis7-source-generator) | | |
| | `opendis7-enumerations-source.jar` | Enumeration Java source files | | |
| | `opendis7-enumerations-javadoc.jar` | Enumeration javadoc archive | | |
| | `opendis7-javadoc.zip` | Browseable javadoc (unzip and open `index.html`) | | |
| | `opendis7-release.zip` | Complete bundle with all JARs and license files | | |
| ## Documentation | |
| - [Javadoc (online)](https://savage.nps.edu/opendis7-java/javadoc) | |
| - [IEEE DIS7 PDU Color Figure](https://www.nps.edu/web/moves/dis) | |
| - [DIS 101 Tutorial (IITSEC 2021)](https://www.nps.edu/web/moves/networked-virtual-environments) | |
| - [Wikipedia: Distributed Interactive Simulation](https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation) | |
| ## Source Code | |
| - [opendis7-java](https://github.com/open-dis/opendis7-java) — Java library, PDUs, utilities, and tests | |
| - [opendis7-source-generator](https://github.com/open-dis/opendis7-source-generator) — Code generator for enumerations and entity types from SISO-REF-010 | |
| ## Specifications | |
| - IEEE Standard 1278.1-2012, IEEE Standard for Distributed Interactive Simulation (DIS) — Application Protocols | |
| - SISO-REF-010 — Reference for Enumerations for Simulation Interoperability | |
| ## Course Materials | |
| - [MV3500 Distributed Simulation Fundamentals](https://www.nps.edu/web/moves/mv3500) — NPS course using this library | |
| ## Contact | |
| - [Don Brutzman](https://faculty.nps.edu/brutzman) — Naval Postgraduate School (NPS) | |
| - [open-dis GitHub Organization](https://github.com/open-dis) | |
| RELEASE_EOF | |
| # Strip leading whitespace from heredoc (caused by YAML indentation) | |
| sed -i 's/^ //' /tmp/release-body.md | |
| - name: Upload release assets | |
| if: github.event_name == 'release' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| TAG="${{ github.event.release.tag_name }}" | |
| REPO="${{ github.repository }}" | |
| # Upload individual JARs | |
| for jar in dist/opendis7-*.jar; do | |
| gh release upload "$TAG" "$jar" --clobber --repo "$REPO" | |
| done | |
| # Upload javadoc zip | |
| gh release upload "$TAG" dist/opendis7-javadoc.zip --clobber --repo "$REPO" | |
| # Upload complete bundle | |
| gh release upload "$TAG" opendis7-release.zip --clobber --repo "$REPO" | |
| # Update release body with the generated description | |
| gh release edit "$TAG" --notes-file /tmp/release-body.md --repo "$REPO" | |
| - name: Upload artifacts | |
| if: github.event_name == 'workflow_dispatch' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: opendis7-release | |
| path: | | |
| dist/opendis7-*.jar | |
| dist/opendis7-javadoc.zip | |
| opendis7-release.zip |