@@ -5,6 +5,21 @@ main() {
5
5
cd " $( dirname " $0 " ) /../.."
6
6
# Only sourcing this so we get access to $VERSION
7
7
source ./ci/lib.sh
8
+ source ./ci/steps/steps-lib.sh
9
+
10
+ echo " Checking environment variables"
11
+
12
+ # We need VERSION to bump the brew formula
13
+ if is_env_var_set " VERSION" ; then
14
+ echo " VERSION is not set"
15
+ exit 1
16
+ fi
17
+
18
+ # We need HOMEBREW_GITHUB_API_TOKEN to push up commits
19
+ if is_env_var_set " HOMEBREW_GITHUB_API_TOKEN" ; then
20
+ echo " HOMEBREW_GITHUB_API_TOKEN is not set"
21
+ exit 1
22
+ fi
8
23
9
24
# NOTE: we need to make sure cdrci/homebrew-core
10
25
# is up-to-date
@@ -13,27 +28,65 @@ main() {
13
28
echo " Cloning cdrci/homebrew-core"
14
29
git clone https://github.com/cdrci/homebrew-core.git
15
30
31
+ # Make sure the git clone step is successful
32
+ if directory_exists " homebrew-core" ; then
33
+ echo " git clone failed. Cannot find homebrew-core directory."
34
+ ls -la
35
+ exit 1
36
+ fi
37
+
16
38
echo " Changing into homebrew-core directory"
17
- cd homebrew-core && pwd
39
+ pushd homebrew-core && pwd
18
40
19
- echo " Adding Homebrew/homebrew-core as $( upstream ) "
41
+ echo " Adding Homebrew/homebrew-core"
20
42
git remote add upstream https://github.com/Homebrew/homebrew-core.git
21
43
44
+ # Make sure the git remote step is successful
45
+ if ! git config remote.upstream.url > /dev/null; then
46
+ echo " git remote add upstream failed."
47
+ echo " Could not find upstream in list of remotes."
48
+ git remote -v
49
+ exit 1
50
+ fi
51
+
52
+ # TODO@jsjoeio - can I somehow check that this succeeded?
22
53
echo " Fetching upstream Homebrew/hombrew-core commits"
23
54
git fetch upstream
24
55
56
+ # TODO@jsjoeio - can I somehow check that this succeeded?
25
57
echo " Merging in latest Homebrew/homebrew-core changes"
26
58
git merge upstream/master
27
59
28
60
echo " Pushing changes to cdrci/homebrew-core fork on GitHub"
61
+
62
+ # GIT_ASKPASS lets us use the password when pushing without revealing it in the process list
63
+ # See: https://serverfault.com/a/912788
64
+ PATH_TO_GIT_ASKPASS=" $HOME /git-askpass.sh"
29
65
# Source: https://serverfault.com/a/912788
30
66
# shellcheck disable=SC2016,SC2028
31
- echo ' #!/bin/sh\nexec echo "$HOMEBREW_GITHUB_API_TOKEN"' > " $HOME " /.git-askpass.sh
67
+ echo ' echo $HOMEBREW_GITHUB_API_TOKEN' > " $PATH_TO_ASKPASS "
68
+
69
+ # Make sure the git-askpass.sh file creation is successful
70
+ if file_exists " $PATH_TO_GIT_ASKPASS " ; then
71
+ echo " git-askpass.sh not found in $HOME ."
72
+ ls -la " $HOME "
73
+ exit 1
74
+ fi
75
+
32
76
# Ensure it's executable since we just created it
33
- chmod +x " $HOME /.git-askpass.sh"
34
- # GIT_ASKPASS lets us use the password when pushing without revealing it in the process list
35
- # See: https://serverfault.com/a/912788
36
- GIT_ASKPASS=
" $HOME /.git-askpass.sh" git push https://
[email protected] /cdr-oss/homebrew-core.git --all
77
+ chmod +x " $PATH_TO_GIT_ASKPASS "
78
+
79
+ # Make sure the git-askpass.sh file is executable
80
+ if is_executable " $PATH_TO_GIT_ASKPASS " ; then
81
+ echo " $PATH_TO_GIT_ASKPASS is not executable."
82
+ ls -la " $PATH_TO_GIT_ASKPASS "
83
+ exit 1
84
+ fi
85
+
86
+ # Export the variables so git sees them
87
+ export HOMEBREW_GITHUB_API_TOKEN=" $HOMEBREW_GITHUB_API_TOKEN "
88
+ export GIT_ASKPASS=" $PATH_TO_ASKPASS "
89
+ git push https://
[email protected] /cdr-oss/homebrew-core.git --all
37
90
38
91
# Find the docs for bump-formula-pr here
39
92
# https://github.com/Homebrew/brew/blob/master/Library/Homebrew/dev-cmd/bump-formula-pr.rb#L18
@@ -48,8 +101,14 @@ main() {
48
101
fi
49
102
50
103
# Clean up and remove homebrew-core
51
- cd ..
104
+ popd
52
105
rm -rf homebrew-core
106
+
107
+ # Make sure homebrew-core is removed
108
+ if directory_exists " homebrew-core" ; then
109
+ echo " rm -rf homebrew-core failed."
110
+ ls -la
111
+ fi
53
112
}
54
113
55
114
main " $@ "
0 commit comments