aboutsummaryrefslogtreecommitdiff
path: root/.jenkins/merge_pr.sh
blob: 4965151df651b931b946e076b276e38ef6c3db82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env bash

# Validating number of arguments
if [ "$#" -ne 4 ]; then
    echo "Expected 4 arguments"
    echo "Syntax: ./merge_pr.sh <PR_NUMBER> <HASH_PR_HEAD> <HASH_BASE_HEAD> <SSH Key Path>"
    echo "Use PR_NUMBER=0 if not a PR"
    exit 1
fi

# Fetching merged head
if [ "$1" != "0" ]; then
    PR_NUMBER=$1
    HASH_PR_HEAD=$2
    HASH_BASE_HEAD=$3
    SSH_KEY_PATH=$4

    # Copying SSH key
    mkdir -p $HOME/.ssh
    sudo cp $SSH_KEY_PATH $HOME/.ssh/id_rsa
    sudo chown $USER:$USER $HOME/.ssh/id_rsa
    sudo chmod 400 $HOME/.ssh/id_rsa

    # Setting identity
    git config --global user.email "jenkins@diplomacy.ai"
    git config --global user.name "Jenkins (diplomacy.ai)"

    # Displaying hashes
    echo "PR Head: $HASH_PR_HEAD"
    echo "Base Head: $HASH_BASE_HEAD"
    echo "PR #${PR_NUMBER} - Merging ${HASH_PR_HEAD::7} into ${HASH_BASE_HEAD::7}"

    # Fetching and merging
    git fetch origin +refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/*
    git checkout -qf $HASH_BASE_HEAD
    git merge --no-ff $HASH_PR_HEAD -m "PR #${PR_NUMBER} - Merge ${HASH_PR_HEAD::7} into ${HASH_BASE_HEAD::7}"
fi