- job:
    name: tf-a-lts-create-release
    node: docker-amd64-tf-a-jammy
    project-type: freestyle
    concurrent: false
    disabled: false
    description: Create a new TF-A LTS release from a tip of an LTS branch.
    properties:
    - build-discarder:
        days-to-keep: 365
        num-to-keep: 30
    - authorization:
        !include: authorization.yaml.inc
    parameters:
        - string:
            name: GERRIT_HOST
            default: 'review.trustedfirmware.org'
        - string:
            name: GERRIT_PROJECT
            default: 'TF-A/trusted-firmware-a'
            description: |
              TF-A Git project
        - string:
            name: GERRIT_BRANCH
            default: 'lts-v2.10'
            description: |
              Git branch to release from (lts-v2.8, lts-v2.10, etc.)
        - bool:
            name: SANDBOX_RUN
            default: true
            description: |
              Run sandbox simulation of a release. A tag will be created in
              separate "sandbox" namespace, and further actions like docs
              publishing or release email sending will be also sandboxed.
              Uncheck this only after running a simulation and verifying that
              everything is correct!
    wrappers:
        - credentials-binding:
          - ssh-user-private-key:
              credential-id: TFA_CI_BOT_USER_SSH_KEY
              key-file-variable: CI_BOT_KEY
              username-variable: CI_BOT_USERNAME
              passphrase-variable: ''
        - timestamps
    builders:
        - shell: |
            #!/bin/bash
            set -ex
            env | grep GERRIT
            echo SANDBOX_RUN=$SANDBOX_RUN
            git clone https://git.trustedfirmware.org/ci/tf-a-ci-scripts.git
            git clone https://$GERRIT_HOST/$GERRIT_PROJECT
            DIR=$(basename $GERRIT_PROJECT)
            cd $DIR
            git checkout $GERRIT_BRANCH
            set +x
            nvm install
            set -x
            npm install --no-save standard-version
            #git tag

            echo "" >> readme.rst
            git config user.email "ci@trustedfirmware.org"
            git config user.name "Release CI"
            # Install Change-Id hook
            f="$(git rev-parse --git-dir)/hooks/commit-msg"; curl -o "$f" https://review.trustedfirmware.org/tools/hooks/commit-msg ; chmod +x "$f"

            if [ "$SANDBOX_RUN" == "true" ]; then
                git commit -a -s -m "fix(readme): dummy commit for sandbox release"
            fi

            python3 $WORKSPACE/tf-a-ci-scripts/lts/lts-mangle-change-log.py remove-prefix docs/change-log.md >docs/change-log.md.tmp
            mv docs/change-log.md.tmp docs/change-log.md
            npm run release -- --release-as patch --tag-prefix lts-v
            python3 $WORKSPACE/tf-a-ci-scripts/lts/lts-mangle-change-log.py add-prefix docs/change-log.md >docs/change-log.md.tmp
            mv docs/change-log.md.tmp docs/change-log.md

            RELEASE=$(grep release docs/conf.py | sed -r -e 's/release = "(.*)"/\1/')

            git diff
            git commit -a -s -m "docs(changelog): changelog for lts-v${RELEASE} release"
            if [ "$SANDBOX_RUN" == "true" ]; then
                TAG="sandbox/lts-v${RELEASE}-$(date +%Y%m%dT%H%M)"
            else
                TAG="lts-v${RELEASE}"
            fi
            git tag $TAG

            mkdir -p ~/.ssh/
            ssh-keyscan -p 29418 $GERRIT_HOST >> ~/.ssh/known_hosts
            export GIT_SSH_COMMAND="ssh -i $CI_BOT_KEY -o 'PubkeyAcceptedKeyTypes +ssh-rsa'"

            #git push ssh://$CI_BOT_USERNAME@$GERRIT_HOST:29418/$GERRIT_PROJECT HEAD:refs/for/$GERRIT_BRANCH

            if [ "$SANDBOX_RUN" == "false" ]; then
                # Push to the LTS branch
                git push ssh://$CI_BOT_USERNAME@$GERRIT_HOST:29418/$GERRIT_PROJECT
            else
                # If it's sandbox run, we still need to push commit to some branch,
                # because otherwise the tag won't be visible in Gerrit (due to ACL
                # model Gerrit uses: it resolve tag to a branch it belongs to, then
                # checks ACLs on branch to see if a user has access to it; no branch
                # == problems).
                git push ssh://${CI_BOT_USERNAME}@${GERRIT_HOST}:29418/${GERRIT_PROJECT} HEAD:refs/heads/${TAG}-br
            fi
            # Push tag
            git push ssh://$CI_BOT_USERNAME@$GERRIT_HOST:29418/$GERRIT_PROJECT $TAG

            echo Release tag is created. Further processing happens in the job ${JENKINS_URL}job/tf-a-lts-release-tagged
