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 () {
fi
}
GIT
HU
B_DIR
=
./
Frama-C-snapshot
GIT
HU
B_GIT
=
"git@git
hub.com:Frama-C/Frama-C-snapshot
.git"
GIT
LA
B_DIR
=
./
pub-frama-c
GIT
LA
B_GIT
=
"git@git
.frama-c.com:pub/frama-c
.git"
if
test
!
-d
$GIT
HU
B_DIR
/.git
;
then
echo
"WARNING:
$GIT
HU
B_DIR
/.git directory not found; do you want to clone it? (y/n)"
if
test
!
-d
$GIT
LA
B_DIR
/.git
;
then
echo
"WARNING:
$GIT
LA
B_DIR
/.git directory not found; do you want to clone it? (y/n)"
read
CHOICE
case
"
${
CHOICE
}
"
in
"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)"
exit
1
;
&
esac
fi
GITHUB_BRANCH
=
$(
git
--git-dir
=
$GITHUB_DIR
/.git rev-parse
--abbrev-ref
HEAD
)
if
test
"
$FINAL_RELEASE
"
=
"yes"
-a
"
$GITHUB_BRANCH
"
!=
"master"
;
then
echo
"WARNING: your setup will commit (locally) a final release on a non-master branch of Frama-C-snapshot"
;
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"
GITLAB_BRANCH
=
$(
git
--git-dir
=
$GITLAB_DIR
/.git rev-parse
--abbrev-ref
HEAD
)
if
test
"
$FRAMAC_BRANCH
"
!=
"
$GITLAB_BRANCH
"
;
then
echo
"WARNING: switching pub-frama-c to current branch
$FRAMAC_BRANCH
"
run
"git -C
$GITLAB_DIR
checkout -b
$FRAMAC_BRANCH
"
fi
GITHUB_WIKI_GIT
=
"git@github.com:Frama-C/Frama-C-snapshot.wiki.git"
GITHUB_WIKI
=
./Frama-C-snapshot.wiki
if
test
!
-d
$GITHUB_WIKI
/.git
;
then
echo
"WARNING:
$GITHUB_WIKI
/.git directory not found; do you want to clone it? (y/n)"
GITLAB_WIKI_GIT
=
"git@git.frama-c.com:pub/frama-c.wiki"
GITLAB_WIKI
=
./frama-c.wiki
if
test
!
-d
$GITLAB_WIKI
/.git
;
then
echo
"WARNING:
$GITLAB_WIKI
/.git directory not found; do you want to clone it? (y/n)"
read
CHOICE
case
"
${
CHOICE
}
"
in
"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)"
exit
1
;
&
esac
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
echo
"WARNING:
Frama-C-snapshot
's wiki is not on the master branch"
;
if
test
"
$GIT
LA
B_WIKI_BRANCH
"
!=
"master"
;
then
echo
"WARNING:
pub/frama-c
's wiki is not on the master branch"
;
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"
if
test
\!
-d
$ACSL_DIR
/.git
;
then
echo
"WARNING:
$ACSL_DIR
/.git directory not found; do you want to clone it? (y/n)"
...
...
@@ -125,12 +119,6 @@ fi
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
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
...
...
@@ -149,11 +137,10 @@ BUILD_DIR="$BUILD_DIR_ROOT/frama-c"
echo
"Frama-C Version :
$FRAMAC_VERSION
"
echo
"Frama-C Branch :
$FRAMAC_BRANCH
"
echo
"Final release :
$FINAL_RELEASE
"
echo
"
Frama-C-snapshot
dir :
$GIT
HU
B_DIR
"
echo
"
Frama-C-snapshot
branch :
$GIT
HU
B_BRANCH
"
echo
"
Frama-C-snapshot
wiki :
$GIT
HU
B_WIKI
"
echo
"
pub/frama-c
dir
:
$GIT
LA
B_DIR
"
echo
"
pub/frama-c
branch
:
$GIT
LA
B_BRANCH
"
echo
"
pub/frama-c
wiki
:
$GIT
LA
B_WIKI
"
echo
"Manuals Dir :
$MANUALS_DIR
"
#echo "Manuals Branch : $MANUALS_BRANCH"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
echo
"Website Dir :
$WEBSITE_DIR
"
echo
"Website Branch :
$WEBSITE_BRANCH
"
...
...
@@ -198,15 +185,18 @@ case "${STEP}" in
run
"doc/build-manuals.sh"
;
&
1
)
run
"git -C
$GIT
HU
B_DIR
reset --hard"
run
"git -C
$GIT
HU
B_WIKI
reset --hard"
run
"git -C
$GIT
LA
B_DIR
reset --hard"
run
"git -C
$GIT
LA
B_WIKI
reset --hard"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
run
"git -C
$WEBSITE_DIR
reset --hard"
fi
;
&
2
)
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
"### WARNING: uncommitted git changes will be discarded when creating archive!"
echo
"Proceed anyway? [y/N]"
...
...
@@ -227,15 +217,9 @@ case "${STEP}" in
run
"cd
$BUILD_DIR
; make -j OPEN_SOURCE=yes src-distrib"
# sanity check: markdown-report must be distributed
run
"tar tf
$BUILD_DIR
/
$TARGZ_FILENAME
| grep -q src/plugins/markdown-report"
# cleanup Frama-C-snapshot
for
file
in
$(
git
-C
$GITHUB_DIR
ls-files
)
;
do
run
"rm
$GITHUB_DIR
/
$file
"
;
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/"
# populate release assets in wiki
run
"mkdir -p
$GITLAB_WIKI
/downloads"
run
"cp
$BUILD_DIR
/
$TARGZ_FILENAME
$GITLAB_WIKI
/downloads/"
if
test
"
$FINAL_RELEASE
"
=
"yes"
;
then
SPEC_FILE
=
"
$DOWNLOAD_DIR
/
$TARGZ_FILENAME
"
run
"rm -f
$WEBSITE_DIR
/
$SPEC_FILE
"
...
...
@@ -284,83 +268,32 @@ case "${STEP}" in
5
)
step 5
"COPYING AND STAGING THE DISTRIBUTED MANUALS"
PAGE_NAME
=
Frama-C-
${
FRAMAC_VERSION_AND_CODENAME
}
.md
WIKI_PAGE
=
$GIT
HU
B_WIKI
/
$PAGE_NAME
run
"mkdir -p
$GIT
HU
B_WIKI
/manuals"
WIKI_PAGE
=
$GIT
LA
B_WIKI
/
$PAGE_NAME
run
"mkdir -p
$GIT
LA
B_WIKI
/manuals"
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
"## Sources"
>>
$WIKI_PAGE
echo
" - [
$TARGZ_FILENAME
](downloads/
$TARGZ_FILENAME
)"
>>
$WIKI_PAGE
echo
""
>>
$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
echo
"- [
$f
](manuals/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf)"
>>
$WIKI_PAGE
run
"cp
$MANUALS_DIR
/
$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
/
$f
-
${
FRAMAC_VERSION_AND_CODENAME
}
.pdf"
RELE_FILE
=
"
$DOWNLOAD_DIR
/frama-c-
$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
-
${
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
for
f
in
"aorai-example"
;
do
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
fpath
in
$MANUALS_DIR
/
*
;
do
f
=
$(
basename
$fpath
)
f_no_ext
=
${
f
%.*
}
if
[[
$f
=
~ ^frama-c
]]
;
then
echo
"Skipping adding link to
$f
in wiki"
continue
fi
if
[[
$f_no_ext
=
*${
FRAMAC_VERSION_AND_CODENAME
}
]]
;
then
echo
"Skipping adding link to
$f
in wiki"
continue
fi
echo
"- [
$f
](manuals/
$f
)"
>>
$WIKI_PAGE
run
"cp
$fpath
$GITLAB_WIKI
/manuals/"
run
"git -C
$GITLAB_WIKI
add manuals/
$f
"
done
for
f
in
"acsl"
;
do
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
"
run
"git -C
$GITLAB_WIKI
add
$PAGE_NAME
"
;;
*
)
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