3 # SPDX-License-Identifier: BSD-3-Clause
4 # Copyright 2020, Intel Corporation
7 # set-ci-vars.sh -- set CI variables common for both:
8 # Travis and GitHub Actions CIs
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)
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)
28 COMMIT_RANGE
="$LAST_MERGE..HEAD"
29 # make sure it works now
30 if ! git rev-list
$COMMIT_RANGE >/dev
/null
; then
36 COMMIT_RANGE_FROM_LAST_MERGE
=$
(get_commit_range_from_last_merge
)
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
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
53 case "$TRAVIS_CPU_ARCH" in
58 CI_CPU_ARCH
=$TRAVIS_CPU_ARCH
62 elif [ -n "$GITHUB_ACTIONS" ]; then
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
69 case "$GITHUB_EVENT_NAME" in
74 CI_EVENT_TYPE
=$GITHUB_EVENT_NAME
79 CI_COMMIT
=$
(git log
--pretty=%H
-1)
80 CI_COMMIT_RANGE
=$COMMIT_RANGE_FROM_LAST_MERGE
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
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