# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: Create Release Candidate
run-name: ${{ github.actor }} is executing Create Release Candidate
permissions:
  contents: write
  
on:
  workflow_dispatch:
    inputs:
      releasecandidatetag:
        description: 'Release Candidate Tag' 
        default: 'RC0'
        required: true
  
jobs:
  createReleaseCandidate:
    runs-on: ubuntu-22.04
    steps:
      - name: Init Release Candidate workflow
        run: echo "Starting Apache ManifoldCF workflow for building ${{ github.event.inputs.releasecandidatetag }}"
      
      - name: Checkout
        uses: actions/checkout@v4.1.7
      
      - name: Set up OpenJDK 11 Temurin x64
        uses: actions/setup-java@v4.2.1
        with:
          java-version: '11'
          distribution: 'temurin'
          architecture: x64
          cache: maven
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg-passphrase: GPG_PASSPHRASE
      
      - name: Get Maven POM version
        id: mavenProjectVersion
        run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT
      
      - name: Initialize mandatory git config
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          git config user.name "$(gh api /users/${GITHUB_ACTOR} | jq .name -r)"
          git config user.email ${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com
      
      - name: Create Branch Version
        id: branchVersion
        run: |
          currentMavenVersion="${{ steps.mavenProjectVersion.outputs.version }}"
          suffixToRemove="SNAPSHOT"
          branchVersion=${currentMavenVersion%"$suffixToRemove"}
          echo "version=${branchVersion}" >> $GITHUB_OUTPUT
      
      - name: Set Branch Tag output
        id: branchTag
        run: echo "tag=${{ steps.branchVersion.outputs.version }}${{ github.event.inputs.releasecandidatetag }}" >> $GITHUB_OUTPUT
      
      - name: Create new release candidate branch
        run: |
          git branch release-${{ steps.branchTag.outputs.tag }}
          git push --set-upstream origin release-${{ steps.branchTag.outputs.tag }}
          git checkout release-${{ steps.branchTag.outputs.tag }}
      
      - name: Update all the Maven modules with the new version
        run: mvn versions:set -DnewVersion=${{ steps.mavenProjectVersion.outputs.version }} -DremoveSnapshot -DgenerateBackupPoms=false
      
      - name: Update Ant script with the new RC version
        run: sed -i 's/${{ steps.mavenProjectVersion.outputs.version }}-dev/${{ steps.mavenProjectVersion.outputs.version }}/g' build.xml;
      
      - name: Update CHANGES.txt
        run: sed -i 's/${{ steps.mavenProjectVersion.outputs.version }}-dev/Release ${{ steps.mavenProjectVersion.outputs.version }}/g' CHANGES.txt;
      
      - name: Ant Build
        run: ant make-core-deps make-deps image
      
      - name: Maven Build
        run: mvn clean install -B -DskipTests -DskipITs
      
      - name: RAT licence checks
        run: mvn -pl . apache-rat:check
      
      - name: Generate RAT License Report
        if: always()
        run: |
          echo -e "Printing RAT report\n"
          cat target/rat.txt || true
      
      - name: Commit and Push
        run: |
          find . -name 'pom.xml' -exec git add {} \;
          git add CHANGES.txt build.xml
          git commit -am "Create ${{ github.event.inputs.releasecandidatetag }} tag for MCF ${{ steps.mavenProjectVersion.outputs.version }}"
          git push
      
      - name: Create Release Candidate
        id: create_release_candidate
        uses: actions/create-release@v1.1.4
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ steps.branchTag.outputs.tag }}
          release_name: Release Candidate ${{ steps.branchTag.outputs.tag }}
          body: |
            Release Candidate ${{ steps.branchTag.outputs.tag }}
          draft: false
          prerelease: true
      
      - name: Set Artifact version output
        id: artifactVersion
        run: echo "version=${{ steps.branchVersion.outputs.version }}dev" >> $GITHUB_OUTPUT
      
      - name: Rename KEYS and CHANGES.txt artifacts
        run: | 
          cp KEYS apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.KEYS
          cp CHANGES.txt apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.CHANGES.txt
      
      - name: Upload artifacts - KEYS - text format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.KEYS
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.KEYS
      
      - name: Upload Release Candidate Asset - KEYS
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.KEYS
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.KEYS
          asset_content_type: text/plain
      
      - name: Upload artifacts - CHANGES
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.CHANGES.txt
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.CHANGES.txt
      
      - name: Upload Release Candidate Asset - CHANGES
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.CHANGES.txt
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}.CHANGES.txt
          asset_content_type: text/plain
      
      - name: Upload artifacts - Binary - zip format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.zip
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.zip
      
      - name: Upload Release Candidate Asset - Binary - zip format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.zip
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.zip
          asset_content_type: application/zip
      
      - name: Upload artifacts - Binary - tar.gz format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.tar.gz
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.tar.gz
      
      - name: Upload Release Candidate Asset - Binary - tar.gz format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.tar.gz
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-bin.tar.gz
          asset_content_type: application/gzip
      
      - name: Upload artifacts - Lib - tar.gz format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.tar.gz
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.tar.gz
      
      - name: Upload Release Candidate Asset - Lib - tar.gz format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.tar.gz
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.tar.gz
          asset_content_type: application/gzip
      
      - name: Upload artifacts - Lib - zip format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.zip
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.zip
      
      - name: Upload Release Candidate Asset - Lib - zip format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.zip
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-lib.zip
          asset_content_type: application/zip
      
      - name: Upload artifacts - Source code - tar.gz format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.tar.gz
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.tar.gz
      
      - name: Upload Release Candidate Asset - Source code - tar.gz format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.tar.gz
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.tar.gz
          asset_content_type: application/gzip
      
      - name: Upload artifacts - Source code - zip format
        uses: actions/upload-artifact@v4.3.3
        with:
          name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.zip
          path: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.zip
      
      - name: Upload Release Candidate Asset - Source code - zip format
        uses: actions/upload-release-asset@v1.0.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release_candidate.outputs.upload_url }}
          asset_path: ./apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.zip
          asset_name: apache-manifoldcf-${{ steps.artifactVersion.outputs.version }}-src.zip
          asset_content_type: application/zip
      
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3.0.0

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3.3.0
      
      - name: Login to Docker Hub
        uses: docker/login-action@v3.2.0
        with:
          username: ${{ secrets.DOCKERHUB_USER }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
          
      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v5.5.1
        with:
          images: apache/manifoldcf
          labels: |
            maintainer=Apache ManifoldCF Developers <dev@manifoldcf.apache.org>
            org.opencontainers.image.title=Apache ManifoldCF
            org.opencontainers.image.description=Apache ManifoldCF is a multi-repository crawler framework, with multiple connectors.
            org.opencontainers.image.vendor=Apache Software Foundation
            org.opencontainers.image.ref.name=manifoldcf
            org.opencontainers.image.authors=Apache ManifoldCF Developers <dev@manifoldcf.apache.org>
            org.opencontainers.image.url=https://hub.docker.com/r/apache/manifoldcf
            org.opencontainers.image.source=https://github.com/apache/manifoldcf/blob/trunk/Dockerfile
            org.opencontainers.image.documentation=https://hub.docker.com/r/apache/manifoldcf
            org.opencontainers.image.version=${{ steps.branchTag.outputs.tag }}
            org.opencontainers.image.licenses=Apache-2.0
           
      - name: Update Docker Image tag
        run: sed -i 's/SNAPSHOT/${{ github.event.inputs.releasecandidatetag }}/g' Dockerfile;
      
      - name: Build and push ManifoldCF Docker Image
        uses: docker/build-push-action@v6.0.0
        with:
          context: .
          file: Dockerfile
          platforms: linux/amd64,linux/arm64/v8
          push: true
          tags: apache/manifoldcf:latest,apache/manifoldcf:${{ steps.branchTag.outputs.tag }}
          labels: ${{ steps.meta.outputs.labels }}
