name: "Release Pipeline" on: push: tags: - v* jobs: release: if: github.repository == 'WebGoat/WebGoat' name: Release WebGoat runs-on: ubuntu-latest permissions: contents: write environment: name: release steps: - uses: actions/checkout@v4 - name: Set up JDK 23 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 23 architecture: x64 cache: 'maven' - name: "Set labels for ${{ github.ref }}" run: | echo "WEBGOAT_TAG_VERSION=${{ github.ref_name }}" >> $GITHUB_ENV WEBGOAT_MAVEN_VERSION=${{ github.ref_name }} 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: | target/webgoat-${{ env.WEBGOAT_MAVEN_VERSION }}.jar body: | ## Version ${{ github.ref_name }} ### New functionality - test ### Bug fixes - [#743 - Character encoding errors](https://github.com/WebGoat/WebGoat/issues/743) Full change log: https://github.com/WebGoat/WebGoat/compare/${{ github.ref_name }}...${{ github.ref_name }} ## 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@v3.1.0 with: platforms: all - name: "Set up Docker Buildx" uses: docker/setup-buildx-action@v3 - name: "Login to dockerhub" uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: "Build and push WebGoat" uses: docker/build-push-action@v6.10.0 with: context: ./ file: ./Dockerfile push: true platforms: linux/amd64, linux/arm64 tags: | webgoat/webgoat:${{ env.WEBGOAT_TAG_VERSION }} webgoat/webgoat:latest build-args: | webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }} - name: "Build and push WebGoat desktop" uses: docker/build-push-action@v6.10.0 with: context: ./ file: ./Dockerfile_desktop push: true platforms: linux/amd64, linux/arm64 tags: | webgoat/webgoat-desktop:${{ env.WEBGOAT_TAG_VERSION }} webgoat/webgoat-desktop:latest build-args: | webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }} new_version: if: github.repository == 'WebGoat/WebGoat' name: Update to next SNAPSHOT version needs: [ release ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 23 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 23 architecture: x64 - name: Set version to next snapshot run: | mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}-SNAPSHOT versions:commit - name: Push the changes to new branch uses: devops-infra/action-commit-push@v0.9.2 with: github_token: "${{ secrets.GITHUB_TOKEN }}" add_timestamp: true commit_message: "Updating to the new development version" force: false - name: Create PR uses: devops-infra/action-pull-request@v0.5.5 with: github_token: "${{ secrets.GITHUB_TOKEN }}" title: ${{ github.event.commits[0].message }} target_branch: main