diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 51087cec7be05927c6cb898b4d4142becccdc644..572f75c148eb4e146cc5ef65e42a2ecc1a9557c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,12 +19,38 @@ license_header: stage: license image: labrobotica/wolf_deps:16.04 before_script: - - 'which ssh-agent || ( apt-get update -qy && apt-get install openssh-client -qqy )' - - eval `ssh-agent -s` - - echo "${SSH_PRIVATE_KEY}" - - echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null # add ssh key + ## + ## Install ssh-agent if not already installed, it is required by Docker. + ## (change apt-get to yum if you use an RPM-based image) + ## + - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' + + ## + ## Run ssh-agent (inside the build environment) + ## + - eval $(ssh-agent -s) + + ## + ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store + ## We're using tr to fix line endings which makes ed25519 keys work + ## without extra base64 encoding. + ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556 + ## + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + + ## + ## Create the SSH directory and give it the right permissions + ## - mkdir -p ~/.ssh - chmod 700 ~/.ssh + + ## + ## Assuming you created the SSH_KNOWN_HOSTS variable, uncomment the + ## following two lines. + ## + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - echo "$SSH_PUBLIC_KEY" - echo "$SSH_PUBLIC_KEY" >> ~/.ssh/id_rsa.pub script: