]> git.proxmox.com Git - ceph.git/blob - ceph/src/pmdk/utils/docker/set-ci-vars.sh
import ceph 16.2.7
[ceph.git] / ceph / src / pmdk / utils / docker / set-ci-vars.sh
1 #!/usr/bin/env bash
2 #
3 # SPDX-License-Identifier: BSD-3-Clause
4 # Copyright 2020, Intel Corporation
5
6 #
7 # set-ci-vars.sh -- set CI variables common for both:
8 # Travis and GitHub Actions CIs
9 #
10
11 set -e
12
13 function get_commit_range_from_last_merge {
14 # get commit id of the last merge
15 LAST_MERGE=$(git log --merges --pretty=%H -1)
16 LAST_COMMIT=$(git log --pretty=%H -1)
17 if [ "$LAST_MERGE" == "$LAST_COMMIT" ]; then
18 # GitHub Actions commits its own merge in case of pull requests
19 # so the first merge commit has to be skipped.
20 LAST_MERGE=$(git log --merges --pretty=%H -2 | tail -n1)
21 fi
22 if [ "$LAST_MERGE" == "" ]; then
23 # possible in case of shallow clones
24 # or new repos with no merge commits yet
25 # - pick up the first commit
26 LAST_MERGE=$(git log --pretty=%H | tail -n1)
27 fi
28 COMMIT_RANGE="$LAST_MERGE..HEAD"
29 # make sure it works now
30 if ! git rev-list $COMMIT_RANGE >/dev/null; then
31 COMMIT_RANGE=""
32 fi
33 echo $COMMIT_RANGE
34 }
35
36 COMMIT_RANGE_FROM_LAST_MERGE=$(get_commit_range_from_last_merge)
37
38 if [ -n "$TRAVIS" ]; then
39 CI_COMMIT=$TRAVIS_COMMIT
40 CI_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE/.../..}"
41 CI_BRANCH=$TRAVIS_BRANCH
42 CI_EVENT_TYPE=$TRAVIS_EVENT_TYPE
43 CI_REPO_SLUG=$TRAVIS_REPO_SLUG
44
45 # CI_COMMIT_RANGE is usually invalid for force pushes - fix it when used
46 # with non-upstream repository
47 if [ -n "$CI_COMMIT_RANGE" -a "$CI_REPO_SLUG" != "$GITHUB_REPO" ]; then
48 if ! git rev-list $CI_COMMIT_RANGE; then
49 CI_COMMIT_RANGE=$COMMIT_RANGE_FROM_LAST_MERGE
50 fi
51 fi
52
53 case "$TRAVIS_CPU_ARCH" in
54 "amd64")
55 CI_CPU_ARCH="x86_64"
56 ;;
57 *)
58 CI_CPU_ARCH=$TRAVIS_CPU_ARCH
59 ;;
60 esac
61
62 elif [ -n "$GITHUB_ACTIONS" ]; then
63 CI_COMMIT=$GITHUB_SHA
64 CI_COMMIT_RANGE=$COMMIT_RANGE_FROM_LAST_MERGE
65 CI_BRANCH=$(echo $GITHUB_REF | cut -d'/' -f3)
66 CI_REPO_SLUG=$GITHUB_REPOSITORY
67 CI_CPU_ARCH="x86_64" # GitHub Actions supports only x86_64
68
69 case "$GITHUB_EVENT_NAME" in
70 "schedule")
71 CI_EVENT_TYPE="cron"
72 ;;
73 *)
74 CI_EVENT_TYPE=$GITHUB_EVENT_NAME
75 ;;
76 esac
77
78 else
79 CI_COMMIT=$(git log --pretty=%H -1)
80 CI_COMMIT_RANGE=$COMMIT_RANGE_FROM_LAST_MERGE
81 CI_CPU_ARCH="x86_64"
82 fi
83
84 export CI_COMMIT=$CI_COMMIT
85 export CI_COMMIT_RANGE=$CI_COMMIT_RANGE
86 export CI_BRANCH=$CI_BRANCH
87 export CI_EVENT_TYPE=$CI_EVENT_TYPE
88 export CI_REPO_SLUG=$CI_REPO_SLUG
89 export CI_CPU_ARCH=$CI_CPU_ARCH
90
91 echo CI_COMMIT=$CI_COMMIT
92 echo CI_COMMIT_RANGE=$CI_COMMIT_RANGE
93 echo CI_BRANCH=$CI_BRANCH
94 echo CI_EVENT_TYPE=$CI_EVENT_TYPE
95 echo CI_REPO_SLUG=$CI_REPO_SLUG
96 echo CI_CPU_ARCH=$CI_CPU_ARCH