diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b5a4e3..d2b8cad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,10 @@ jobs: - name: Build jar run: make jar - - name: Build image + - name: Build distribution + run: make dist + + - name: Build native image run: make graal - name: Upload "JAR file" @@ -38,3 +41,25 @@ jobs: name: xsdchecker-${TAG}-linux-64bit label: Executable (Linux 64bit) type: application/x-executable + + - name: Upload "Distribution (zip)" + uses: klakegg/github-upload@v0.9.1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file: target/dist.zip + name: xsdchecker-${TAG}.zip + label: Distribution (zip) + type: application/zip + + - name: Upload "Distribution (tar.gz)" + uses: klakegg/github-upload@v0.9.1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file: target/dist.tar.gz + name: xsdchecker-${TAG}.tar.gz + label: Distribution (tar.gz) + type: application/x-tar \ No newline at end of file diff --git a/Makefile b/Makefile index 5e6a09e..f795ba1 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,4 @@ -.PHONY: graal - -graal: - @docker build -t klakegg/xsdchecker:snapshot . - @docker run --rm -i \ - -v $(shell pwd)/target:/target \ - --entrypoint cp \ - klakegg/xsdchecker:snapshot \ - /bin/xsdchecker /target/xsdchecker +.PHONY: graal dist jar: @docker run --rm -i \ @@ -15,3 +7,19 @@ jar: --workdir /src \ maven:3.6-jdk-8-slim \ sh build.sh + +dist: + @docker run --rm -i \ + -v $(shell pwd):/src \ + -v $(shell pwd)/target:/target \ + --workdir /src/dist \ + alpine:3.11 \ + sh build.sh + +graal: + @docker build -t klakegg/xsdchecker:snapshot . + @docker run --rm -i \ + -v $(shell pwd)/target:/target \ + --entrypoint cp \ + klakegg/xsdchecker:snapshot \ + /bin/xsdchecker /target/xsdchecker \ No newline at end of file diff --git a/dist/bin/xsdchecker b/dist/bin/xsdchecker new file mode 100644 index 0000000..a5b9d86 --- /dev/null +++ b/dist/bin/xsdchecker @@ -0,0 +1,9 @@ +#!/bin/sh + +PROJECT=$(dirname $(dirname "$0")) + +if [ $JAVA_HOME ]; then + $JAVA_HOME/bin/java -jar $PROJECT/lib/xsdchecker.jar $@ +else + java -jar $PROJECT/lib/xsdchecker.jar $@ +fi \ No newline at end of file diff --git a/dist/build.sh b/dist/build.sh new file mode 100644 index 0000000..af4e3b7 --- /dev/null +++ b/dist/build.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +test ! -e /target/dist || rm -rf /target/dist + +mkdir -p /target/dist/lib +cp /target/*.jar /target/dist/lib/ + +cp -r bin /target/dist/ +chmod a+x /target/dist/bin/* + +cp -r ../schemas /target/dist/xsd + +cp ../LICENSE /target/dist/ + +cd /target/dist + +tar -czf ../dist.tar.gz * + +apk --no-cache add zip +zip -q ../dist.zip * \ No newline at end of file