34 lines
1.1 KiB
Bash
Executable File
34 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ "$TEMPLATE_REPO_URL" == "" ]]
|
|
then
|
|
echo >&2 "Set the TEMPLATE_REPO_URL variable!"
|
|
exit 1
|
|
fi
|
|
|
|
echo 'gitlab-runner launched locally does not handle `include` directives.'
|
|
echo 'THIS IS AN UGLY WORK-AROUND FOR https://gitlab.com/gitlab-org/gitlab-runner/issues/3327'
|
|
|
|
template_version=$(grep -P "^\s*ref:\s*'[0-9.]+'\s*$" .gitlab-ci.yml | grep -o -P '[0-9.]+')
|
|
|
|
cookiecutter_paper_dir=`mktemp -d -t run-gitlab-runner.XXXXXXXXXXX`
|
|
(cd $cookiecutter_paper_dir && git clone ${TEMPLATE_REPO_DIR} -b $template_version)
|
|
|
|
new_gitlab_ci_yml=`mktemp -t new-gitlab-ci-yml.XXXXXXXXX`
|
|
|
|
perl -ne 'print if 1../THIS IS AN UGLY WORK-AROUND/' < .gitlab-ci.yml > $new_gitlab_ci_yml
|
|
cat ${cookiecutter_paper_dir}/cookiecutter-*-paper/main.yml >> $new_gitlab_ci_yml
|
|
|
|
cp $new_gitlab_ci_yml .gitlab-ci.yml
|
|
|
|
current_commit=`git rev-parse HEAD`
|
|
|
|
# committing the manufactured .gitlab-ci.yml for a moment
|
|
git add .gitlab-ci.yml
|
|
git commit -m 'TEMPORARY COMMIT. DO NOT MERGE'
|
|
|
|
gitlab-runner exec docker "$@"
|
|
|
|
# going back to the original commit
|
|
git reset --hard $current_commit
|