From fcc0ac736338dd6f85b8e36d5ad8cb59f2c5d201 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Wed, 18 Feb 2026 14:30:32 -0800 Subject: [PATCH 1/3] UD-3169: added gh release workflow --- .github/workflows/release.yml | 42 +++++++++++++++++++++++++++++++++++ Makefile | 7 +++++- pom.xml | 4 +++- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..51a1bae --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: Release + +on: + release: + types: [published] + +jobs: + build-release: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + + - name: Extract and validate version from tag + id: version + run: | + TAG="${{ github.event.release.tag_name }}" + VERSION="${TAG#v}" + if ! echo "$VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then + echo "Error: version '$VERSION' is not valid semver (expected X.Y.Z)" + exit 1 + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Build release JAR + run: xvfb-run make install-release VERSION=${{ steps.version.outputs.version }} + + - name: Upload JAR to release + run: | + gh release upload "${{ github.event.release.tag_name }}" \ + "target/open-cyweb-${{ steps.version.outputs.version }}.jar" \ + --clobber + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/Makefile b/Makefile index c46a30f..6d57125 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: clean test coverage install updateversion help +.PHONY: clean test coverage install install-release updateversion help .DEFAULT_GOAL := help help: @@ -11,6 +11,7 @@ help: @echo " lint-fix auto-fix Spotless formatting" @echo " coverage check code coverage with jacoco (report: target/site/jacoco/index.html)" @echo " install install the package to local repo" + @echo " install-release build and install a release jar with VERSION (e.g. make install-release VERSION=1.2.3)" @echo " updateversion updates version in pom.xml via maven command" clean: @@ -31,5 +32,9 @@ coverage: install: clean mvn install +install-release: + @if [ -z "$(VERSION)" ]; then echo "Error: VERSION is required. Usage: make install-release VERSION=1.2.3"; exit 1; fi + mvn clean install -Drevision=$(VERSION) + updateversion: mvn versions:set diff --git a/pom.xml b/pom.xml index 952a5c6..7fa6774 100644 --- a/pom.xml +++ b/pom.xml @@ -4,6 +4,8 @@ + 1.0.0-SNAPSHOT + edu.ucsd.idekerlab.opencyweb edu.ucsd.idekerlab.opencyweb @@ -21,7 +23,7 @@ 4.0.0 edu.ucsd.idekerlab open-cyweb - 1.0.0-SNAPSHOT + ${revision} bundle OpenCytoscapeWeb From 33811a02eff9ca45869cd946bdd5a7741a8f06cc Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Wed, 18 Feb 2026 14:32:40 -0800 Subject: [PATCH 2/3] UD-3169: added changelog --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..dcc02c5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [1.0.0] - 2026-02-18 + +### Added +- Initial release of the OpenCytoscapeWeb Cytoscape app +- Open the current network in Cytoscape Web directly from the File > Export menu +- Configurable Cytoscape Web URL via app properties +- Configurable maximum file size limit for network export +- Validation of network size before attempting to open, with a user-friendly error dialog when the limit is exceeded From 9f1b2b696282d01e3df5cd85b0fd205ef92bbe4a Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Wed, 18 Feb 2026 14:41:18 -0800 Subject: [PATCH 3/3] UD-3169: prefent duplicate test runs on gh ci --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf13d84..5ea97f9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,10 +3,10 @@ name: Continuous Integration on: push: branches: - - '**' # Run on push to any branch + - main # Run on merge to main pull_request: branches: - - main # Run on PRs to main + - main # Run on PR updates targeting main jobs: test: