From 831cb379a92f21a8ab332d5cdb28edf7f7deef17 Mon Sep 17 00:00:00 2001 From: Alejandro Lopez Gestoso <alopez@iri.upc.edu> Date: Tue, 30 Aug 2022 12:40:28 +0200 Subject: [PATCH] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 134 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..75ee046 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,134 @@ + image: docker.io/labrobotica/labrobotica:latest + + variables: + GIT_SUBMODULE_STRATEGY: recursive + FROM_RDEPENDS_CI: "false" + + stages: + - build + - update_package + - update_reverse_dependencies + + .build-package: + stage: build + rules: + - if: $CI_COMMIT_TAG =~ /\d+\.[^a-zA-Z_\s]*\d+/ + script: + #- git submodule sync --recursive + #- git submodule update --init --recursive + - apt update || apt -y install ca-certificates && apt update + ##Install dependencies + #- apt -y install iri-dep1-dev iri-dep2-dev + - mkdir -pv build + - cd build + - cmake -DCMAKE_BUILD_TYPE=RELEASE -DCPACK_PACKAGE_VERSION=$CI_COMMIT_TAG .. + - make package -j $(nproc) + artifacts: + paths: + - build/*.deb + expire_in: 2 weeks + + + .update_repo: + stage: update_package + rules: + - if: $CI_COMMIT_TAG =~ /\d+\.[^a-zA-Z_\s]*\d+/ + script: + - cd build + - "scp -i /root/.ssh/iriLabKeyNopwd -r *dummyutils*.deb irilabo@labrepo.iri.upc.edu:packages/" + - "ssh irilabo@labrepo.iri.upc.edu -i /root/.ssh/iriLabKeyNopwd -tt /home/irilabo/repo_scripts/update_repo.sh dummyutils $(lsb_release -cs)" + + + modify_rdepends_ci: + stage: update_reverse_dependencies + rules: + - if: $FROM_RDEPENDS_CI == "false" && $CI_COMMIT_TAG =~ /\d+\.[^a-zA-Z_\s]*\d+/ + script: + # Modify child pipeline + - apt update || apt -y install ca-certificates && apt update + - "scp -i /root/.ssh/iriLabKeyNopwd irilabo@labrepo.iri.upc.edu:repo_scripts/reverse_dependency.sh ." + - "scp -i /root/.ssh/iriLabKeyNopwd irilabo@labrepo.iri.upc.edu:repo_scripts/generate_rdepends_ci.sh ." + - ./reverse_dependency.sh dummyutils + + # git configuration & push + + - git config user.email labrobotica@iri.upc.edu + - git config user.name labrobotica + - if git checkout -b update_rdepends ; then + - echo "Branch update_rdepends ok." + - else + - git branch -D update_rdepends + - git checkout -b update_rdepends + - echo "Re-created branch update_rdepends ok." + - fi + - git add .rdepends_ci/rdepends_ci.yml + - git commit -m "Updated rdepends_ci.yml" + - git remote set-url --push origin https://rdepends_token:$ACCESS_TOKEN@gitlab.iri.upc.edu/alopez/test_ci.git || echo "Origin already exists" + - git remote show origin + - git push --set-upstream origin update_rdepends + + + .trigger_rdepends_ci: + stage: update_reverse_dependencies + rules: + - if: $CI_COMMIT_BRANCH == "update_rdepends" + trigger: + include: .rdepends_ci/rdepends_ci.yml + strategy: depend + + + cleanup_branch: + stage: update_reverse_dependencies + rules: + - if: $CI_COMMIT_BRANCH == "update_rdepends" + script: + # delete .rdepends_ci/rdepends_ci.yml, merge to master and delete branch + - git config user.email labrobotica@iri.upc.edu + - git config user.name labrobotica + - git branch -D update_rdepends + #- git branch -D update_rdepends_tag + - git push origin --delete update_rdepends || echo "Update_depends branch already deleted" + #- git push origin --delete update_rdepends_tag || echo "Update_depends_tag branch already deleted" + needs: [generate_new_tag] + + + generate_new_tag: + stage: update_reverse_dependencies + rules: + - if: $CI_COMMIT_BRANCH == "update_rdepends" + script: + # Read package version and increment patch version + - apt update || apt -y install ca-certificates && apt update + - VER=( $(apt-cache show iri-dummyutils-dev | grep Version) ) + - declare -a VER + - if [ ${#VER[@]} -eq 2 ] + - then + - echo "${VER[1]}" + - tmp=${VER[1]%.*} + - MAJOR=${tmp%.*} + - tmp=${VER[1]#*.} + - MINOR=${tmp%.*} + - REV=${tmp#*.} + - NEW_REV=$((${REV}+1)) + - NEW_VER="${MAJOR}.${MINOR}.${NEW_REV}" + - echo "${NEW_VER}" + - else + - echo "No version found for iri-dummyutils-dev" + - exit 1 + - fi + # git configuration & tag + + - git config user.email labrobotica@iri.upc.edu + - git config user.name labrobotica + #- if git checkout -b update_rdepends_tag ; then + #- echo "Branch update_rdepends_tag ok." + #- else + #- git branch -D update_rdepends_tag + #- git checkout -b update_rdepends_tag + #- echo "Re-created branch update_rdepends_tag ok." + #- fi + - git tag -a 1.4.8 -m "New tag by reverse dependency pipeline" + - git remote set-url --push origin https://rdepends_token:$ACCESS_TOKEN@gitlab.iri.upc.edu/alopez/test_ci.git || echo "Origin already exists" + - git remote show origin + #- git push --set-upstream origin update_rdepends_tag + - git push origin 1.4.8 -- GitLab