name: "Release Pipeline" on: push: tags: - v* jobs: release: if: github.repository == 'WebGoat/WebGoat' name: Release WebGoat runs-on: ubuntu-latest environment: name: release steps: - uses: actions/checkout@v3 - name: "Get tag name" id: tag uses: dawidd6/action-get-tag@v1 - name: Set up JDK 15 uses: actions/setup-java@v2 with: distribution: 'zulu' java-version: 15 architecture: x64 - name: Cache Maven packages uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - name: "Set labels for ${{ github.ref }}" run: | echo "WEBGOAT_TAG_VERSION=${{ steps.tag.outputs.tag }}" >> $GITHUB_ENV WEBGOAT_MAVEN_VERSION=${{ steps.tag.outputs.tag }} echo "WEBGOAT_MAVEN_VERSION=${WEBGOAT_MAVEN_VERSION:1}" >> $GITHUB_ENV - name: Build with Maven run: | mvn --no-transfer-progress versions:set -DnewVersion=${{ env.WEBGOAT_MAVEN_VERSION }} mvn --no-transfer-progress install -DskipTests - name: "Create release" uses: softprops/action-gh-release@v1 with: draft: false files: | webgoat/target/webgoat-${{ env.WEBGOAT_MAVEN_VERSION }}.jar body: | ## Version ${{ steps.tag.outputs.tag }} ### New functionality - test ### Bug fixes - [#743 - Character encoding errors](https://github.com/WebGoat/WebGoat/issues/743) ## Contributors Special thanks to the following contributors providing us with a pull request: - Person 1 - Person 2 And everyone who provided feedback through Github. Team WebGoat env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: "Set up QEMU" uses: docker/setup-qemu-action@v1.1.0 with: platforms: all - name: "Set up Docker Buildx" uses: docker/setup-buildx-action@v1 - name: "Login to dockerhub" uses: docker/login-action@v1.14.1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: "Build and push" uses: docker/build-push-action@v2.10.0 with: context: ./ file: ./Dockerfile push: true platforms: linux/amd64, linux/arm64, linux/arm/v7 tags: | webgoat/webgoat:${{ env.WEBGOAT_TAG_VERSION }} webgoat/webgoat:latest build-args: | webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }} - name: "Image digest" run: echo ${{ steps.docker_build.outputs.digest }} new_version: permissions: contents: write # for Git to git push if: github.repository == 'WebGoat/WebGoat' name: Update development version needs: [ release ] runs-on: ubuntu-latest environment: name: release steps: - uses: actions/checkout@v3 with: ref: develop token: ${{ secrets.WEBGOAT_DEPLOYER_TOKEN }} - name: Set up JDK 17 uses: actions/setup-java@v2 with: java-version: 17 architecture: x64 - name: Set version to next snapshot run: | mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT versions:commit - name: Commit pom.xml run: | git config user.name webgoat-github git config user.email owasp.webgoat@gmail.com find . -name 'pom.xml' | xargs git add git commit -m "Updating to the new development version" git push