Skip to content

Commit 93e3e2a

Browse files
authored
Merge pull request #31 from open-dis/ci/add-github-actions-workflows
Enhance release workflow with full distribution page
2 parents 797afab + f21ff5c commit 93e3e2a

1 file changed

Lines changed: 69 additions & 2 deletions

File tree

.github/workflows/publish.yml

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ jobs:
2626
- name: Build
2727
run: ant all
2828

29+
- name: Package javadoc for browsing
30+
run: |
31+
cd dist/javadoc && zip -r ../opendis7-javadoc.zip .
32+
2933
- name: Create release bundle
3034
run: |
3135
mkdir -p release
@@ -34,16 +38,78 @@ jobs:
3438
cp dist/license.html release/
3539
cd release && zip -r ../opendis7-release.zip .
3640
41+
- name: Generate release description
42+
run: |
43+
cat > /tmp/release-body.md <<'RELEASE_EOF'
44+
![Open-DIS Surfer Dude](https://raw.githubusercontent.com/open-dis/opendis7-java/master/images/OpenDisSurferDude.png)
45+
46+
# opendis7-java Distribution Products
47+
48+
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.
49+
50+
## Downloads
51+
52+
| Asset | Description |
53+
|-------|-------------|
54+
| `opendis7-full.jar` | Complete library — PDUs, enumerations, utilities, and javadoc in one jar |
55+
| `opendis7-pdus-classes.jar` | PDU compiled classes only |
56+
| `opendis7-pdus-source.jar` | PDU Java source files |
57+
| `opendis7-enumerations-classes.jar` | Enumeration compiled classes (from opendis7-source-generator) |
58+
| `opendis7-enumerations-source.jar` | Enumeration Java source files |
59+
| `opendis7-enumerations-javadoc.jar` | Enumeration javadoc archive |
60+
| `opendis7-javadoc.zip` | Browseable javadoc (unzip and open `index.html`) |
61+
| `opendis7-release.zip` | Complete bundle with all JARs and license files |
62+
63+
## Documentation
64+
65+
- [Javadoc (online)](https://savage.nps.edu/opendis7-java/javadoc)
66+
- [IEEE DIS7 PDU Color Figure](https://www.nps.edu/web/moves/dis)
67+
- [DIS 101 Tutorial (IITSEC 2021)](https://www.nps.edu/web/moves/networked-virtual-environments)
68+
- [Wikipedia: Distributed Interactive Simulation](https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation)
69+
70+
## Source Code
71+
72+
- [opendis7-java](https://github.com/open-dis/opendis7-java) — Java library, PDUs, utilities, and tests
73+
- [opendis7-source-generator](https://github.com/open-dis/opendis7-source-generator) — Code generator for enumerations and entity types from SISO-REF-010
74+
75+
## Specifications
76+
77+
- IEEE Standard 1278.1-2012, IEEE Standard for Distributed Interactive Simulation (DIS) — Application Protocols
78+
- SISO-REF-010 — Reference for Enumerations for Simulation Interoperability
79+
80+
## Course Materials
81+
82+
- [MV3500 Distributed Simulation Fundamentals](https://www.nps.edu/web/moves/mv3500) — NPS course using this library
83+
84+
## Contact
85+
86+
- [Don Brutzman](https://faculty.nps.edu/brutzman) — Naval Postgraduate School (NPS)
87+
- [open-dis GitHub Organization](https://github.com/open-dis)
88+
RELEASE_EOF
89+
# Strip leading whitespace from heredoc (caused by YAML indentation)
90+
sed -i 's/^ //' /tmp/release-body.md
91+
3792
- name: Upload release assets
3893
if: github.event_name == 'release'
3994
env:
4095
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4196
run: |
4297
apt-get install -y gh
98+
TAG="${{ github.event.release.tag_name }}"
99+
100+
# Upload individual JARs
43101
for jar in dist/opendis7-*.jar; do
44-
gh release upload "${{ github.event.release.tag_name }}" "$jar" --clobber
102+
gh release upload "$TAG" "$jar" --clobber
45103
done
46-
gh release upload "${{ github.event.release.tag_name }}" opendis7-release.zip --clobber
104+
105+
# Upload javadoc zip
106+
gh release upload "$TAG" dist/opendis7-javadoc.zip --clobber
107+
108+
# Upload complete bundle
109+
gh release upload "$TAG" opendis7-release.zip --clobber
110+
111+
# Update release body with the generated description
112+
gh release edit "$TAG" --notes-file /tmp/release-body.md
47113
48114
- name: Upload artifacts
49115
if: github.event_name == 'workflow_dispatch'
@@ -52,4 +118,5 @@ jobs:
52118
name: opendis7-release
53119
path: |
54120
dist/opendis7-*.jar
121+
dist/opendis7-javadoc.zip
55122
opendis7-release.zip

0 commit comments

Comments
 (0)