diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..3624e61fa2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,53 @@ +name: Build and Test + +on: + push: + branches: [master, main] + pull_request: + branches: [master, main] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + container: + image: eclipse-temurin:17-jdk + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Ant + run: | + apt-get update + apt-get install -y ant + + - name: Show versions + run: | + java -version + ant -version + + - name: Build and test + run: ant all + + - name: Upload jars + uses: actions/upload-artifact@v4 + with: + name: opendis7-jars + path: dist/*.jar + retention-days: 30 + + - name: Upload javadoc + uses: actions/upload-artifact@v4 + with: + name: opendis7-javadoc + path: dist/javadoc/ + retention-days: 30 + + - name: Upload test results + uses: actions/upload-artifact@v4 + if: always() + with: + name: test-results + path: build/test/results/ + retention-days: 14 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000000..1f91e32a80 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,55 @@ +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 + + - name: Build + run: ant all + + - 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: Upload release assets + if: github.event_name == 'release' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + apt-get install -y gh + for jar in dist/opendis7-*.jar; do + gh release upload "${{ github.event.release.tag_name }}" "$jar" --clobber + done + gh release upload "${{ github.event.release.tag_name }}" opendis7-release.zip --clobber + + - name: Upload artifacts + if: github.event_name == 'workflow_dispatch' + uses: actions/upload-artifact@v4 + with: + name: opendis7-release + path: | + dist/opendis7-*.jar + opendis7-release.zip diff --git a/build.xml b/build.xml index 32dfa66e51..eb69ab4cd4 100644 --- a/build.xml +++ b/build.xml @@ -181,18 +181,24 @@ POSSIBILITY OF SUCH DAMAGE. + + - + + + - + + +