Newer
Older
- distrib_and_compatibility
variables:
CURRENT: $CI_COMMIT_REF_NAME
FRAMA_CI_OPT: "--override frama-c:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA"
check-no-old-frama-c:
stage: git-update
script:
- (! git merge-base --is-ancestor a1e186c68a6418a53b3dc06237f49e8dcbf75f4a HEAD)
- git merge-base --is-ancestor a35d2118fe6999dddce9e1847eff626fae9cc37c HEAD
tags:
- nix
#avoid a nix error https://github.com/NixOS/nix/issues/2087
git-update:
stage: git-update
Virgile Prevosto
committed
- nix/frama-ci.sh build -A frama-c.main
artifacts:
when: on_failure
paths:
- commits.nix
- results.log
expire_in: 1 day
- nix/frama-ci.sh build -A frama-c.lint
coverage: '/lint coverage: \d+\.\d+/'
Virgile Prevosto
committed
aorai-prove:
stage: tests
script:
- nix/frama-ci.sh build -A frama-c.aorai-prove
tags:
- nix
allow_failure: true
frama-clang:
stage: tests
script:
- nix/frama-ci.sh build -A frama-clang.tests
metacsl:
stage: tests
script:
- nix/frama-ci.sh build -A meta.tests
tags:
- nix
eva-tests:
stage: tests
script:
- nix/frama-ci.sh build -A frama-c.eva-tests
tags:
- nix
allow_failure: true
build-distrib-tarball:
stage: build
- nix/frama-ci.sh build -A frama-c.build-distrib-tarball
build-from-distrib-tarball:
stage: tests
- nix/frama-ci.sh build -A frama-c.build-from-distrib-tarball
doc:
stage: tests
script:
- nix/frama-ci.sh build -A frama-c.doc
tags:
- nix
allow_failure: true
internal:
<<: *internal_template
script:
- nix/frama-ci.sh build -A frama-c.internal
when: manual
internal_nightly:
<<: *internal_template
script:
- nix/frama-ci.sh build -A frama-c.internal
only:
- schedules
.build_template: &frama-c-ocaml
stage: distrib_and_compatibility
frama-c-ocaml-4.13:
variables:
OCAML: "4_13"
<<: *frama-c-ocaml
e-acsl-tests-dev:
stage: tests
script:
- nix/frama-ci.sh build -A frama-c.e-acsl-tests-dev
tags:
- nix
image: node:lts-gallium
script:
- node --version
- npm --version
- yarn --version
# make_public stage is used to push the current master branch of Frama-C and
# associated plugins from the internal frama-c group to the public pub group.
# For that, it uses the 'frama-c to frama-c-public' deploy key. Thus, to publish
# a new plugin (while keeping its main repository internal), you can add a new
# target to this stage, adapting the script for MetAcsl or Frama-Clang to your
# own plugin.
# You must also activate the deploy key on both frama-c/my_plugin
# and pub/my_plugin repositories (the former should be read-only, the latter
# must provide write access to the deploy key).
# Do not forget to trigger the target only on schedules, so that all public
# repositories stay synchronized.
make_public:
stage: make_public
script:
- (! git merge-base --is-ancestor a1e186c68a6418a53b3dc06237f49e8dcbf75f4a origin/master)
- echo "$FRAMA_C_PUBLIC_SSH_PRIVATE_KEY" | nix run -f channel:nixos-19.03 coreutils --command base64 -d > nix/frama-c-public/id_ed25519
- nix run -f channel:nixos-19.03 coreutils --command chmod 400 nix/frama-c-public/id_ed25519
- GIT_SSH=nix/frama-c-public/ssh.sh nix run -f channel:nixos-19.03 openssh --command git push git@git.frama-c.com:pub/frama-c.git origin/master:refs/heads/master
tags:
- nix
only:
make_public_meta:
stage: make_public
script:
- echo "$FRAMA_C_PUBLIC_SSH_PRIVATE_KEY" | nix run -f channel:nixos-19.03 coreutils --command base64 -d > nix/frama-c-public/id_ed25519
- nix run -f channel:nixos-19.03 coreutils --command chmod 400 nix/frama-c-public/id_ed25519
- GIT_SSH=$PWD/nix/frama-c-public/ssh.sh nix run -f channel:nixos-19.03 openssh --command git clone git@git.frama-c.com:frama-c/meta.git nix/frama-c-public/meta
- GIT_SSH=$PWD/nix/frama-c-public/ssh.sh nix run -f channel:nixos-19.03 openssh --command git -C nix/frama-c-public/meta push git@git.frama-c.com:pub/meta origin/master:refs/heads/master
tags:
- nix
only:
- schedules
make_public_fclang:
stage: make_public
script:
- echo "$FRAMA_C_PUBLIC_SSH_PRIVATE_KEY" | nix run -f channel:nixos-19.03 coreutils --command base64 -d > nix/frama-c-public/id_ed25519
- nix run -f channel:nixos-19.03 coreutils --command chmod 400 nix/frama-c-public/id_ed25519
- GIT_SSH=$PWD/nix/frama-c-public/ssh.sh nix run -f channel:nixos-19.03 openssh --command git clone git@git.frama-c.com:frama-c/frama-clang.git nix/frama-c-public/frama-clang
- GIT_SSH=$PWD/nix/frama-c-public/ssh.sh nix run -f channel:nixos-19.03 openssh --command git -C nix/frama-c-public/frama-clang push git@git.frama-c.com:pub/frama-clang origin/master:refs/heads/master
tags:
- nix
only:
- schedules