plantuml-server/.github/workflows/main.yml

208 lines
5.8 KiB
YAML

name: Main
on:
push:
tags:
- "v*"
jobs:
build-jdk11:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: "zulu"
java-version: 11
check-latest: true
cache: "maven"
- name: get tag name
id: version
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/*/}
- name: build with maven
run: mvn --batch-mode --define java.net.useSystemProxies=true package
- name: create renamed build
run: cp target/plantuml.war target/plantuml-${{ steps.version.outputs.VERSION }}.war
- name: build with maven (including the apache-jsp artifact)
run: mvn --batch-mode --define java.net.useSystemProxies=true -Dapache-jsp.scope=compile package
- name: create renamed build (including the apache-jsp artifact)
run: cp target/plantuml.war target/plantuml-jsp-${{ steps.version.outputs.VERSION }}.war
- name: temporarily save generated war files
uses: actions/upload-artifact@v2
with:
name: war-jre11
path: target/plantuml*-${{ steps.version.outputs.VERSION }}.war
build-jdk8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: "zulu"
java-version: 8
check-latest: true
cache: "maven"
- name: get tag name
id: version
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/*/}
- name: Remove test code (not java 8 compatible)
run: rm -rf src/test
- name: build with maven
run: mvn --batch-mode -f pom.jdk8.xml --define java.net.useSystemProxies=true package
- name: create renamed build
run: cp target/plantuml.war target/plantuml-jre8-${{ steps.version.outputs.VERSION }}.war
- name: build with maven (including the apache-jsp artifact)
run: mvn --batch-mode -f pom.jdk8.xml --define java.net.useSystemProxies=true -Dapache-jsp.scope=compile package
- name: create renamed build (including the apache-jsp artifact)
run: cp target/plantuml.war target/plantuml-jre8-jsp-${{ steps.version.outputs.VERSION }}.war
- name: temporarily save generated war files
uses: actions/upload-artifact@v2
with:
name: war-jre8
path: target/plantuml*-${{ steps.version.outputs.VERSION }}.war
publish-releases:
runs-on: ubuntu-latest
needs:
- build-jdk11
- build-jdk8
steps:
- name: retrieve generated war files (jre8)
uses: actions/download-artifact@v2
with:
name: war-jre8
path: artifacts
- name: retrieve generated war files (jre11)
uses: actions/download-artifact@v2
with:
name: war-jre11
path: artifacts
- name: display structure of downloaded files
run: ls -lah artifacts
- name: upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: artifacts/plantuml*.war
tag: ${{ github.ref }}
overwrite: true
file_glob: true
publish-docker:
runs-on: ubuntu-latest
needs:
- publish-releases
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Docker tomcat meta
id: docker_meta_tomcat
uses: crazy-max/ghaction-docker-meta@v3
with:
flavor: |
latest=false
prefix=
suffix=
images: plantuml/plantuml-server
tags: |
type=semver,pattern=tomcat-{{raw}}
type=raw,value=tomcat
- name: Docker jetty meta
id: docker_meta_jetty
uses: crazy-max/ghaction-docker-meta@v3
with:
flavor: |
latest=true
prefix=
suffix=
images: plantuml/plantuml-server
tags: |
type=semver,pattern={{raw}}
type=semver,pattern=jetty-{{raw}}
type=raw,value=jetty
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & push tomcat
id: docker_build_tomcat
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile.tomcat
platforms: linux/amd64, linux/arm64
push: true
tags: ${{ steps.docker_meta_tomcat.outputs.tags }}
labels: ${{ steps.docker_meta_tomcat.outputs.labels }}
- name: Build & push jetty
id: docker_build_jetty
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile.jetty
platforms: linux/amd64, linux/arm64
push: true
tags: ${{ steps.docker_meta_jetty.outputs.tags }}
labels: ${{ steps.docker_meta_jetty.outputs.labels }}
publish-pages:
runs-on: ubuntu-latest
needs:
- publish-releases
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: "zulu"
java-version: 11
check-latest: true
cache: "maven"
- name: Create GitHub Pages
run: mvn site
- name: Deploy GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/site