Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
frama-c
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Charles Southerland
frama-c
Commits
814abe3d
Commit
814abe3d
authored
4 years ago
by
Andre Maroneze
Browse files
Options
Downloads
Patches
Plain Diff
[Release] Update release script for Gitlab and minor fixes
parent
d99c6537
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
bin/build-src-distrib.sh
+51
-118
51 additions, 118 deletions
bin/build-src-distrib.sh
with
51 additions
and
118 deletions
bin/build-src-distrib.sh
+
51
−
118
View file @
814abe3d
...
@@ -54,57 +54,51 @@ run () {
...
@@ -54,57 +54,51 @@ run () {
fi
fi
}
}
GIT
HU
B_DIR
=
./
Frama-C-snapshot
GIT
LA
B_DIR
=
./
pub-frama-c
GIT
HU
B_GIT
=
"git@git
hub.com:Frama-C/Frama-C-snapshot
.git"
GIT
LA
B_GIT
=
"git@git
.frama-c.com:pub/frama-c
.git"
if
test
!
-d
$GIT
HU
B_DIR
/.git
;
then
if
test
!
-d
$GIT
LA
B_DIR
/.git
;
then
echo
"WARNING:
$GIT
HU
B_DIR
/.git directory not found; do you want to clone it? (y/n)"
echo
"WARNING:
$GIT
LA
B_DIR
/.git directory not found; do you want to clone it? (y/n)"
read
CHOICE
read
CHOICE
case
"
${
CHOICE
}
"
in
case
"
${
CHOICE
}
"
in
"Y"
|
"y"
)
"Y"
|
"y"
)
run
"git clone
$GIT
HU
B_GIT
"
run
"git clone
$GIT
LA
B_GIT
$GITLAB_DIR
"
;;
;;
*
)
*
)
echo
"git
hu
b's Frama-C
-snapshot
project must be linked at
$GIT
HU
B_DIR
\
echo
"git
la
b's
public
Frama-C project must be linked at
$GIT
LA
B_DIR
\
(clone or symbolic link)"
(clone or symbolic link)"
exit
1
exit
1
;
&
;
&
esac
esac
fi
fi
GITHUB_BRANCH
=
$(
git
--git-dir
=
$GITHUB_DIR
/.git rev-parse
--abbrev-ref
HEAD
)
GITLAB_BRANCH
=
$(
git
--git-dir
=
$GITLAB_DIR
/.git rev-parse
--abbrev-ref
HEAD
)
if
test
"
$FRAMAC_BRANCH
"
!=
"
$GITLAB_BRANCH
"
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
-a
"
$GITHUB_BRANCH
"
!=
"master"
;
then
echo
"WARNING: switching pub-frama-c to current branch
$FRAMAC_BRANCH
"
echo
"WARNING: your setup will commit (locally) a final release on a non-master branch of Frama-C-snapshot"
;
run
"git -C
$GITLAB_DIR
checkout -b
$FRAMAC_BRANCH
"
fi
if
test
"
$FINAL_RELEASE
"
=
"no"
-a
"
$GITHUB_BRANCH
"
=
"master"
;
then
echo
"WARNING: your setup will commit (locally) an intermediate release on the master branch of Frama-C-snapshot"
fi
fi
GITLAB_WIKI_GIT
=
"git@git.frama-c.com:pub/frama-c.wiki"
GITHUB_WIKI_GIT
=
"git@github.com:Frama-C/Frama-C-snapshot.wiki.git"
GITLAB_WIKI
=
./frama-c.wiki
GITHUB_WIKI
=
./Frama-C-snapshot.wiki
if
test
!
-d
$GITLAB_WIKI
/.git
;
then
if
test
!
-d
$GITHUB_WIKI
/.git
;
then
echo
"WARNING:
$GITLAB_WIKI
/.git directory not found; do you want to clone it? (y/n)"
echo
"WARNING:
$GITHUB_WIKI
/.git directory not found; do you want to clone it? (y/n)"
read
CHOICE
read
CHOICE
case
"
${
CHOICE
}
"
in
case
"
${
CHOICE
}
"
in
"Y"
|
"y"
)
"Y"
|
"y"
)
run
"git clone
$GIT
HU
B_WIKI_GIT
"
run
"git clone
$GIT
LA
B_WIKI_GIT
"
;;
;;
*
)
*
)
echo
"
Frama-C-snapshot
wiki must be linked at
$GIT
HU
B_WIKI
\
echo
"
pub/frama-c
wiki must be linked at
$GIT
LA
B_WIKI
\
(clone or symbolic link)"
(clone or symbolic link)"
exit
1
exit
1
;
&
;
&
esac
esac
fi
fi
GIT
HU
B_WIKI_BRANCH
=
$(
git
--git-dir
=
$GIT
HU
B_WIKI
/.git rev-parse
--abbrev-ref
HEAD
)
GIT
LA
B_WIKI_BRANCH
=
$(
git
--git-dir
=
$GIT
LA
B_WIKI
/.git rev-parse
--abbrev-ref
HEAD
)
if
test
"
$GIT
HU
B_WIKI_BRANCH
"
!=
"master"
;
then
if
test
"
$GIT
LA
B_WIKI_BRANCH
"
!=
"master"
;
then
echo
"WARNING:
Frama-C-snapshot
's wiki is not on the master branch"
;
echo
"WARNING:
pub/frama-c
's wiki is not on the master branch"
;
fi
fi
ACSL_GIT
=
"git@git
hu
b.com:acsl-language/acsl.git"
ACSL_GIT
=
"git@git
la
b.com:acsl-language/acsl.git"
ACSL_DIR
=
"./doc/acsl"
ACSL_DIR
=
"./doc/acsl"
if
test
\!
-d
$ACSL_DIR
/.git
;
then
if
test
\!
-d
$ACSL_DIR
/.git
;
then
echo
"WARNING:
$ACSL_DIR
/.git directory not found; do you want to clone it? (y/n)"
echo
"WARNING:
$ACSL_DIR
/.git directory not found; do you want to clone it? (y/n)"
...
@@ -125,12 +119,6 @@ fi
...
@@ -125,12 +119,6 @@ fi
MANUALS_DIR
=
"./doc/manuals"
MANUALS_DIR
=
"./doc/manuals"
#if test \! -d $MANUALS_DIR/.git ; then
# echo "ERROR: $MANUALS_DIR/.git directory not found"
# echo "The Frama-C manuals repository must linked at $MANUALS_DIR (clone or symbolic link)"
# exit 1
#fi
#MANUALS_BRANCH=`git --git-dir=$MANUALS_DIR/.git rev-parse --abbrev-ref HEAD`
# push on frama-c.com only for final releases
# push on frama-c.com only for final releases
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
...
@@ -149,11 +137,10 @@ BUILD_DIR="$BUILD_DIR_ROOT/frama-c"
...
@@ -149,11 +137,10 @@ BUILD_DIR="$BUILD_DIR_ROOT/frama-c"
echo
"Frama-C Version :
$FRAMAC_VERSION
"
echo
"Frama-C Version :
$FRAMAC_VERSION
"
echo
"Frama-C Branch :
$FRAMAC_BRANCH
"
echo
"Frama-C Branch :
$FRAMAC_BRANCH
"
echo
"Final release :
$FINAL_RELEASE
"
echo
"Final release :
$FINAL_RELEASE
"
echo
"
Frama-C-snapshot
dir :
$GIT
HU
B_DIR
"
echo
"
pub/frama-c
dir
:
$GIT
LA
B_DIR
"
echo
"
Frama-C-snapshot
branch :
$GIT
HU
B_BRANCH
"
echo
"
pub/frama-c
branch
:
$GIT
LA
B_BRANCH
"
echo
"
Frama-C-snapshot
wiki :
$GIT
HU
B_WIKI
"
echo
"
pub/frama-c
wiki
:
$GIT
LA
B_WIKI
"
echo
"Manuals Dir :
$MANUALS_DIR
"
echo
"Manuals Dir :
$MANUALS_DIR
"
#echo "Manuals Branch : $MANUALS_BRANCH"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
echo
"Website Dir :
$WEBSITE_DIR
"
echo
"Website Dir :
$WEBSITE_DIR
"
echo
"Website Branch :
$WEBSITE_BRANCH
"
echo
"Website Branch :
$WEBSITE_BRANCH
"
...
@@ -198,15 +185,18 @@ case "${STEP}" in
...
@@ -198,15 +185,18 @@ case "${STEP}" in
run
"doc/build-manuals.sh"
run
"doc/build-manuals.sh"
;
&
;
&
1
)
1
)
run
"git -C
$GIT
HU
B_DIR
reset --hard"
run
"git -C
$GIT
LA
B_DIR
reset --hard"
run
"git -C
$GIT
HU
B_WIKI
reset --hard"
run
"git -C
$GIT
LA
B_WIKI
reset --hard"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
run
"git -C
$WEBSITE_DIR
reset --hard"
run
"git -C
$WEBSITE_DIR
reset --hard"
fi
fi
;
&
;
&
2
)
2
)
step 2
"BUILDING THE SOURCE DISTRIBUTION"
step 2
"BUILDING THE SOURCE DISTRIBUTION"
if
!
git diff-index
--quiet
HEAD
--
;
then
# WARNING! MUST RUN git update-index BEFORE git diff-index!
# See: https://stackoverflow.com/questions/36367190/git-diff-files-output-changes-after-git-status
run
"git update-index --refresh"
if
!
git diff-index HEAD
--
;
then
echo
""
echo
""
echo
"### WARNING: uncommitted git changes will be discarded when creating archive!"
echo
"### WARNING: uncommitted git changes will be discarded when creating archive!"
echo
"Proceed anyway? [y/N]"
echo
"Proceed anyway? [y/N]"
...
@@ -227,15 +217,9 @@ case "${STEP}" in
...
@@ -227,15 +217,9 @@ case "${STEP}" in
run
"cd
$BUILD_DIR
; make -j OPEN_SOURCE=yes src-distrib"
run
"cd
$BUILD_DIR
; make -j OPEN_SOURCE=yes src-distrib"
# sanity check: markdown-report must be distributed
# sanity check: markdown-report must be distributed
run
"tar tf
$BUILD_DIR
/
$TARGZ_FILENAME
| grep -q src/plugins/markdown-report"
run
"tar tf
$BUILD_DIR
/
$TARGZ_FILENAME
| grep -q src/plugins/markdown-report"
# cleanup Frama-C-snapshot
# populate release assets in wiki
for
file
in
$(
git
-C
$GITHUB_DIR
ls-files
)
;
do
run
"mkdir -p
$GITLAB_WIKI
/downloads"
run
"rm
$GITHUB_DIR
/
$file
"
;
run
"cp
$BUILD_DIR
/
$TARGZ_FILENAME
$GITLAB_WIKI
/downloads/"
done
run
"git -C
$GITHUB_DIR
clean -fx"
run
"cd
$GITHUB_DIR
; tar --strip-components=1 -xzvf
$BUILD_DIR
/
$TARGZ_FILENAME
"
run
"git -C
$GITHUB_DIR
add -A"
run
"mkdir -p
$GITHUB_WIKI
/downloads"
run
"cp
$BUILD_DIR
/
$TARGZ_FILENAME
$GITHUB_WIKI
/downloads/"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
$TARGZ_FILENAME
"
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
$TARGZ_FILENAME
"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
"
...
@@ -284,83 +268,32 @@ case "${STEP}" in
...
@@ -284,83 +268,32 @@ case "${STEP}" in
5
)
5
)
step 5
"COPYING AND STAGING THE DISTRIBUTED MANUALS"
step 5
"COPYING AND STAGING THE DISTRIBUTED MANUALS"
PAGE_NAME
=
Frama-C-
${
FRAMAC_VERSION_AND_CODENAME
}
.md
PAGE_NAME
=
Frama-C-
${
FRAMAC_VERSION_AND_CODENAME
}
.md
WIKI_PAGE
=
$GIT
HU
B_WIKI
/
$PAGE_NAME
WIKI_PAGE
=
$GIT
LA
B_WIKI
/
$PAGE_NAME
run
"mkdir -p
$GIT
HU
B_WIKI
/manuals"
run
"mkdir -p
$GIT
LA
B_WIKI
/manuals"
run
"sed -i -e '/<!-- LAST RELEASE -->/a
\
run
"sed -i -e '/<!-- LAST RELEASE -->/a
\
- [
${
FRAMAC_VERSION
}
(
${
FRAMAC_VERSION_CODENAME
}
)](Frama-C-
${
FRAMAC_VERSION_AND_CODENAME
}
)'
$GIT
HU
B_WIKI
/Home.md"
- [
${
FRAMAC_VERSION
}
(
${
FRAMAC_VERSION_CODENAME
}
)](Frama-C-
${
FRAMAC_VERSION_AND_CODENAME
}
)'
$GIT
LA
B_WIKI
/Home.md"
echo
"# Frama-C release
${
FRAMAC_VERSION
}
(
${
FRAMAC_VERSION_CODENAME
}
)"
>
$WIKI_PAGE
echo
"# Frama-C release
${
FRAMAC_VERSION
}
(
${
FRAMAC_VERSION_CODENAME
}
)"
>
$WIKI_PAGE
echo
"## Sources"
>>
$WIKI_PAGE
echo
"## Sources"
>>
$WIKI_PAGE
echo
" - [
$TARGZ_FILENAME
](downloads/
$TARGZ_FILENAME
)"
>>
$WIKI_PAGE
echo
" - [
$TARGZ_FILENAME
](downloads/
$TARGZ_FILENAME
)"
>>
$WIKI_PAGE
echo
""
>>
$WIKI_PAGE
echo
""
>>
$WIKI_PAGE
echo
"## Manuals"
>>
$WIKI_PAGE
echo
"## Manuals"
>>
$WIKI_PAGE
for
f
in
"user-manual"
"acsl-implementation"
"eva-manual"
"plugin-development-guide"
"rte-manual"
"wp-manual"
"metrics-manual"
"aorai-manual"
;
do
for
fpath
in
$MANUALS_DIR
/
*
;
do
echo
"- [
$f
](manuals/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf)"
>>
$WIKI_PAGE
f
=
$(
basename
$fpath
)
run
"cp
$MANUALS_DIR
/
$f
.pdf
$GITHUB_WIKI
/manuals/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
f_no_ext
=
${
f
%.*
}
run
"git -C
$GITHUB_WIKI
add manuals/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
if
[[
$f
=
~ ^frama-c
]]
;
then
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
echo
"Skipping adding link to
$f
in wiki"
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
continue
RELE_FILE
=
"
$DOWNLOAD_DIR
/frama-c-
$f
.pdf"
fi
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
$WEBSITE_DIR
/
$RELE_FILE
"
if
[[
$f_no_ext
=
*${
FRAMAC_VERSION_AND_CODENAME
}
]]
;
then
run
"cp
$MANUALS_DIR
/
$f
.pdf
$WEBSITE_DIR
/
$SPEC_FILE
"
;
echo
"Skipping adding link to
$f
in wiki"
run
"ln -s
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf
$WEBSITE_DIR
/
$RELE_FILE
"
;
continue
run
"git -C
$WEBSITE_DIR
add
$SPEC_FILE
"
fi
run
"git -C
$WEBSITE_DIR
add
$RELE_FILE
"
echo
"- [
$f
](manuals/
$f
)"
>>
$WIKI_PAGE
fi
run
"cp
$fpath
$GITLAB_WIKI
/manuals/"
done
run
"git -C
$GITLAB_WIKI
add manuals/
$f
"
for
f
in
"aorai-example"
;
do
done
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.tgz"
RELE_FILE
=
"
$DOWNLOAD_DIR
/frama-c-
$f
.tgz"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
$WEBSITE_DIR
/
$RELE_FILE
"
run
"cp
$MANUALS_DIR
/
$f
.tgz
$WEBSITE_DIR
/
$SPEC_FILE
"
;
run
"ln -s
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.tgz
$WEBSITE_DIR
/
$RELE_FILE
"
;
run
"git -C
$WEBSITE_DIR
add
$SPEC_FILE
"
run
"git -C
$WEBSITE_DIR
add
$RELE_FILE
"
fi
done
for
f
in
"acsl"
;
do
run
"git -C
$GITLAB_WIKI
add
$PAGE_NAME
"
ACSL_VERSION
=
`
cat
doc/acsl/ACSL_VERSION
`
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
${
f
}
-
${
ACSL_VERSION
}
.pdf"
RELE_FILE
=
"
$DOWNLOAD_DIR
/
$f
.pdf"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
$WEBSITE_DIR
/
$RELE_FILE
"
run
"cp
$MANUALS_DIR
/
$f
.pdf
$WEBSITE_DIR
/
$SPEC_FILE
"
;
run
"ln -s
${
f
}
-
${
ACSL_VERSION
}
.pdf
$WEBSITE_DIR
/
$RELE_FILE
"
;
run
"git -C
$WEBSITE_DIR
add
$SPEC_FILE
"
run
"git -C
$WEBSITE_DIR
add
$RELE_FILE
"
fi
done
for
f
in
"e-acsl-manual"
"e-acsl-implementation"
;
do
echo
"- [
$f
](manuals/
${
f
}
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf)"
>>
$WIKI_PAGE
run
"cp src/plugins/e-acsl/doc/manuals/
$f
.pdf
$GITHUB_WIKI
/manuals/
${
f
}
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
run
"git -C
$GITHUB_WIKI
add manuals/
${
f
}
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/e-acsl/
${
f
}
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
RELE_FILE
=
"
$DOWNLOAD_DIR
/e-acsl/
$f
.pdf"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
$WEBSITE_DIR
/
$RELE_FILE
"
run
"cp src/plugins/e-acsl/doc/manuals/
$f
.pdf
$WEBSITE_DIR
/
$SPEC_FILE
"
run
"ln -s
${
f
}
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf
$WEBSITE_DIR
/
$RELE_FILE
"
;
run
"git -C
$WEBSITE_DIR
add
$SPEC_FILE
"
run
"git -C
$WEBSITE_DIR
add
$RELE_FILE
"
fi
done
# E-ACSL manuals based on ACSL version number
for
f
in
"e-acsl"
;
do
echo
"- [
$f
](manuals/
${
f
}
-
${
ACSL_VERSION
}
.pdf)"
>>
$WIKI_PAGE
run
"cp src/plugins/e-acsl/doc/manuals/
$f
.pdf
$GITHUB_WIKI
/manuals/
${
f
}
-
${
ACSL_VERSION
}
.pdf"
run
"git -C
$GITHUB_WIKI
add manuals/
${
f
}
-
${
ACSL_VERSION
}
.pdf"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/e-acsl/
${
f
}
-
${
ACSL_VERSION
}
.pdf"
RELE_FILE
=
"
$DOWNLOAD_DIR
/e-acsl/
$f
.pdf"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
$WEBSITE_DIR
/
$RELE_FILE
"
run
"cp src/plugins/e-acsl/doc/manuals/
$f
.pdf
$WEBSITE_DIR
/
$SPEC_FILE
"
run
"ln -s
${
f
}
-
${
ACSL_VERSION
}
.pdf
$WEBSITE_DIR
/
$RELE_FILE
"
;
run
"git -C
$WEBSITE_DIR
add
$SPEC_FILE
"
run
"git -C
$WEBSITE_DIR
add
$RELE_FILE
"
fi
done
run
"git -C
$GITHUB_WIKI
add
$PAGE_NAME
"
;;
;;
*
)
*
)
echo
"Bad entry:
${
STEP
}
"
echo
"Bad entry:
${
STEP
}
"
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment