FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-github-backup/release at master · foxweek/python-github-backup · GitHub
foxweek
/
python-github-backup
Public
forked from
josegonzalez/python-github-backup
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python-github-backup
/
release
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
127 lines (98 loc) · 4.45 KB
Breadcrumbs
python-github-backup
/
release
Copy path
File metadata and controls
executable file
·
127 lines (98 loc) · 4.45 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!
/usr/bin/env bash
set
-eo pipefail
;
[[
$RELEASE_TRACE
]]
&&
set
-x
PACKAGE_NAME=
'
github-backup
'
INIT_PACKAGE_NAME=
'
github_backup
'
PUBLIC=
"
true
"
#
Colors
COLOR_OFF=
"
\033[0m
"
#
unsets color to term fg color
RED=
"
\033[0;31m
"
#
red
GREEN=
"
\033[0;32m
"
#
green
YELLOW=
"
\033[0;33m
"
#
yellow
MAGENTA=
"
\033[0;35m
"
#
magenta
CYAN=
"
\033[0;36m
"
#
cyan
#
ensure wheel is available
pip install wheel
>
/dev/null
command
-v gitchangelog
>
/dev/null
2>&1
||
{
echo
-e
"
${RED}
WARNING: Missing gitchangelog binary, please run: pip install gitchangelog==2.2.0
${COLOR_OFF}
\n
"
exit
1
}
command
-v rst-lint
>
/dev/null
||
{
echo
-e
"
${RED}
WARNING: Missing rst-lint binary, please run: pip install restructuredtext_lint
${COLOR_OFF}
\n
"
exit
1
}
if
[[
"
$@
"
!=
"
major
"
]]
&&
[[
"
$@
"
!=
"
minor
"
]]
&&
[[
"
$@
"
!=
"
patch
"
]]
;
then
echo
-e
"
${RED}
WARNING: Invalid release type, must specify 'major', 'minor', or 'patch'
${COLOR_OFF}
\n
"
exit
1
fi
echo
-e
"
\n
${GREEN}
STARTING RELEASE PROCESS
${COLOR_OFF}
\n
"
set
+e
;
git status
|
grep
"
working directory clean
"
&
>
/dev/null
if
[
!
$?
-eq
0 ]
;
then
#
working directory is NOT clean
echo
-e
"
${RED}
WARNING: You have uncomitted changes, you may have forgotten something
${COLOR_OFF}
\n
"
exit
1
fi
set
-e
;
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Updating local copy
"
git pull -q origin master
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Retrieving release versions
"
current_version=
$(
cat
${INIT_PACKAGE_NAME}
/__init__.py
|
grep
'
__version__ =
'
|
sed
'
s/[^0-9.]//g
'
)
major=
$(
echo
$current_version
|
awk
'
{split($0,a,"."); print a[1]}
'
)
minor=
$(
echo
$current_version
|
awk
'
{split($0,a,"."); print a[2]}
'
)
patch=
$(
echo
$current_version
|
awk
'
{split($0,a,"."); print a[3]}
'
)
if
[[
"
$@
"
==
"
major
"
]]
;
then
major=
$((
$major
+
1
))
;
minor=
"
0
"
patch=
"
0
"
elif
[[
"
$@
"
==
"
minor
"
]]
;
then
minor=
$((
$minor
+
1
))
;
patch=
"
0
"
elif
[[
"
$@
"
==
"
patch
"
]]
;
then
patch=
$((
$patch
+
1
))
;
fi
next_version=
"
${major}
.
${minor}
.
${patch}
"
echo
-e
"
${YELLOW}
>
${COLOR_OFF}
${MAGENTA}${current_version}${COLOR_OFF}
->
${MAGENTA}${next_version}${COLOR_OFF}
"
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Ensuring readme passes lint checks (if this fails, run rst-lint)
"
rst-lint README.rst
>
/dev/null
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Creating necessary temp file
"
tempfoo=
$(
basename
$0
)
TMPFILE=
$(
mktemp /tmp/
${tempfoo}
.XXXXXX
)
||
{
echo
-e
"
${RED}
WARNING: Cannot create temp file using mktemp in /tmp dir
${COLOR_OFF}
\n
"
exit
1
}
find_this=
"
__version__ = '
$current_version
'
"
replace_with=
"
__version__ = '
$next_version
'
"
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Updating
${INIT_PACKAGE_NAME}
/__init__.py
"
sed
"
s/
$find_this
/
$replace_with
/
"
${INIT_PACKAGE_NAME}
/__init__.py
>
$TMPFILE
&&
mv
$TMPFILE
${INIT_PACKAGE_NAME}
/__init__.py
find_this=
"
${PACKAGE_NAME}
.git@
$current_version
"
replace_with=
"
${PACKAGE_NAME}
.git@
$next_version
"
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Updating README.rst
"
sed
"
s/
$find_this
/
$replace_with
/
"
README.rst
>
$TMPFILE
&&
mv
$TMPFILE
README.rst
if
[
-f
docs/conf.py ]
;
then
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Updating docs
"
find_this=
"
version = '
${current_version}
'
"
replace_with=
"
version = '
${next_version}
'
"
sed
"
s/
$find_this
/
$replace_with
/
"
docs/conf.py
>
$TMPFILE
&&
mv
$TMPFILE
docs/conf.py
find_this=
"
version = '
${current_version}
'
"
replace_with=
"
release = '
${next_version}
'
"
sed
"
s/
$find_this
/
$replace_with
/
"
docs/conf.py
>
$TMPFILE
&&
mv
$TMPFILE
docs/conf.py
fi
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Updating CHANGES.rst for new release
"
version_header=
"
$next_version
(
$(
date +%F
)
)
"
set
+e
;
dashes=
$(
yes
'
-
'
|
head -n
${
#
version_header}
|
tr -d
'
\n
'
)
;
set
-e
gitchangelog
|
sed
"
4s/.*/
$version_header
/
"
|
sed
"
5s/.*/
$dashes
/
"
>
$TMPFILE
&&
mv
$TMPFILE
CHANGES.rst
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Adding changed files to git
"
git add CHANGES.rst README.rst
${INIT_PACKAGE_NAME}
/__init__.py
if
[
-f
docs/conf.py ]
;
then
git add docs/conf.py
;
fi
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Creating release
"
git commit -q -m
"
Release version
$next_version
"
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Tagging release
"
git tag -a
$next_version
-m
"
Release version
$next_version
"
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Pushing release and tags to github
"
git push -q origin master
&&
git push -q --tags
if
[[
"
$PUBLIC
"
==
"
true
"
]]
;
then
echo
-e
"
${YELLOW}
--->
${COLOR_OFF}
Creating python release
"
cp README.rst README
python setup.py sdist bdist_wheel upload
>
/dev/null
rm README
fi
echo
-e
"
\n
${CYAN}
RELEASED VERSION
${next_version}
!
${COLOR_OFF}
\n
"
Back
|
FazBrowse Home
|
New Git URL