Maamoun TK maamoun.tk@googlemail.com writes:
I managed to get the tarball approach working in gitlab ci with the following steps:
Thanks for the research. I've added a test job based on these ideas. See https://git.lysator.liu.se/nettle/nettle/-/commit/c25774e230985a625fa5112f3f.... An almost identical setup was run successfully as https://gitlab.com/gnutls/nettle/-/jobs/1125145345.
- In gitlab go to settings -> CI / CD. Expand Variables and add the
following variables:
- S390X_SSH_IP_ADDRESS: username@instance_ip
- S390X_SSH_PRIVATE_KEY: private key of ssh connection
- S390X_SSH_CI_DIRECTORY: name of directory in remote server where the
tarball is extracted and tested
I made only the private key a variable (and of type "file", which means it's stored in a temporary file, with file name in $SSH_PRIVATE_KEY). The others are defined in the .gitlab-ci.yml file.
Update gitlab-ci.yml as follows:
- Add this line to variables category at the top of file:
DEBIAN_BUILD: buildenv-debian
I used the same fedora image as for the simpler build jobs.
script:
- tar --exclude=.git --exclude=gitlab-ci.yml -cf - . | ssh
$S390X_SSH_IP_ADDRESS "cd $S390X_SSH_CI_DIRECTORY/$CI_PIPELINE_IID && tar -xf - &&
I'm using ./configure && make dist instead, then we get a bit testing of that too. On the remote side, directory name is based on $CI_PIPELINE_IID, that seems to be a good way to get one directory per job.
only: variables: - $S390X_SSH_IP_ADDRESS - $S390X_SSH_PRIVATE_KEY - $S390X_SSH_CI_DIRECTORY
What does this mean? Ah, it excludes the job if these variables aren't set?
Regards, /Niels