diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86720ed9644ffcc8f9dab66d25620cfd5ecd82a6..4c5bc87370c3d80ca493fd151351f784533de44a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -231,6 +231,18 @@ ivette: tags: - docker +# 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: @@ -254,3 +266,15 @@ make_public_meta: - 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