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
Deploy
Releases
Container Registry
Model registry
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
pub
frama-c
Commits
b0ab7c26
Commit
b0ab7c26
authored
3 years ago
by
Andre Maroneze
Committed by
Virgile Prevosto
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
[Dev] add release target and update instructions
parent
57265efe
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
devel_tools/docker/Makefile
+24
-0
24 additions, 0 deletions
devel_tools/docker/Makefile
doc/release/website.tex
+25
-24
25 additions, 24 deletions
doc/release/website.tex
with
49 additions
and
24 deletions
devel_tools/docker/Makefile
+
24
−
0
View file @
b0ab7c26
...
...
@@ -54,6 +54,30 @@ dev-stripped: Dockerfile.dev
docker build
.
-t
framac/frama-c:dev-stripped
--target
frama-c-stripped
-f
$^
$(
ARGS
)
TARGETS
+=
dev-stripped
release
:
Dockerfile.dev Dockerfile.template
@
export
archive
=
"frama-c-
$$(
cat ../../VERSION
)
-
$$(
cat ../../VERSION_CODENAME
)
.tar.gz"
;
\
if
[
!
-e
"
$$
archive"
]
;
then
\
echo
"error:
$$
archive not found; run 'make src-distrib' and put the .tar.gz in this directory."
;
\
exit
1
;
\
fi
;
\
docker build
.
-t
framac/frama-c:release
--target
frama-c-slim
--build-arg
=
from_archive
=
"
$$
archive"
-f
$<
@
echo
"Now run: 'docker tag framac/frama-c:release framac/frama-c:<version>'"
TARGETS
+=
release
release-gui
:
Dockerfile.dev
@
echo
"For 'dev' builds, consider adding ARGS=--no-cache to force"
@
echo
"Docker to rebuild all layers."
docker build
.
-t
framac/frama-c-gui:release
--target
frama-c-gui-slim
-f
$^
$(
ARGS
)
@
echo
"Now run: 'docker tag framac/frama-c-gui:release framac/frama-c-gui:<version>'"
TARGETS
+=
release-gui
release-stripped
:
Dockerfile.dev
@
echo
"For 'dev' builds, consider adding ARGS=--no-cache to force"
@
echo
"Docker to rebuild all layers."
docker build
.
-t
framac/frama-c:release-stripped
--target
frama-c-stripped
-f
$^
$(
ARGS
)
@
echo
"Now run: 'docker tag framac/frama-c:release-stripped framac/frama-c:<version>-stripped'"
TARGETS
+=
release-stripped
# Note: alpine-3.14 has Z3 version 4.8.11, which is not supported in some
# versions of Why3, so we remain with alpine-3.13 for now.
Dockerfile.dev
:
Makefile Dockerfile.template env.template
...
...
This diff is collapsed.
Click to expand it.
doc/release/website.tex
+
25
−
24
View file @
b0ab7c26
...
...
@@ -195,43 +195,44 @@ Just update the \texttt{VERSION} file in \texttt{master}, by adding
\textbf
{
Note:
}
you need access to the
\texttt
{
framac
}
Docker Hub account to be able to upload the image.
Make sure:
Make sure that
\texttt
{
devel
\_
tools/docker/Makefile
}
is up-to-date:
\begin{itemize}
\item
\texttt
{
devel
\_
tools/docker/frama-c.dev/Dockerfile
}
\item
\texttt
{
devel
\_
tools/docker/frama-c.custom/Dockerfile
}
\item
changes to
\texttt
{
reference-configuration.md
}
must have been ported
to the corresponding
\texttt
{
Dockerfile.dev
}
entry inside the
\texttt
{
Makefile
}
.
\end{itemize}
are up-to-date; to do so, you can do the following:
\begin{lstlisting}
cd devel
_
tools/docker/frama-c.custom
<edit Dockerfile to change the base image, from debian:sid (unstable) to the
latest stable release>
<copy release .tar.gz to this directory, extract and rename the directory
`frama-c`>
docker build . -t fc-with-test --build-arg=with
_
source=yes
\
--build-arg=with
_
test=yes
\end{lstlisting}
Copy the
\texttt
{
.tar.gz
}
archive to the
\texttt
{
devel
\_
tools/docker
}
directory.
This should copy the contents of
\texttt
{
frama-c
}
into the Docker image
and t
ry
t
o compil
e Frama-C
with it, then run the tests
.
Run
\texttt
{
make release
}
. It should decompress the archive, build
and t
est
t
h
e Frama-C
Docker image
.
If the local tests do not work, check that the OCaml version and package
dependencies are all up-to-date. Remember that there are several differences
between Debian unstable (`sid`) and stable, which may require changes to the
\texttt
{
Dockerfile
}
.
dependencies are all up-to-date.
If the image is built succesfully, you can also try building the GUI image
(
\texttt
{
make release-gui
}
) and the stripped image
(
\texttt
{
make release-stripped
}
).
If the local tests work, then re-run Docker
\textit
{
without
}
the source/tests,
to make the image leaner:
If you want to upload these images to the Docker Hub, you can re-tag them, e.g.
\begin{lstlisting}
docker
build . -t
framac/frama-c:<VERSION>
docker
tag framac/frama-c:release
framac/frama-c:<VERSION>
\end{lstlisting}
Replacing
\texttt
{
<VERSION>
}
with the release number, e.g.
\texttt
{
23.0
}
.
Where
\texttt
{
<VERSION>
}
is the release number, possibly with a suffix, but
{
\em
without
}
characters such as
\texttt
{
+
}
. For instance, you can use
\texttt
{
23.1-beta
}
for a beta release.
After building the image, upload it with
\texttt
{
docker push framac/frama-c:<VERSION>
}
.
You will need to have setup your
\texttt
{
framac
}
Docker Hub account for this to work.
Then upload the renamed image(s) with:
\begin{lstlisting}
docker push framac/frama-c:<VERSION>
docker push framac/frama-c-gui:<VERSION>
docker push framac/frama-c:<VERSION>-stripped
\end{lstlisting}
You will need to have setup your
\texttt
{
framac
}
Docker Hub account for this to work.
%%% Local Variables:
%%% mode: latex
...
...
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