stages: - deploy deploy_zenodo: stage: deploy image: python:3.6.11-buster #dependencies: ### Ideally to be used within a ci pipeline in where a container of the source code is build in a previous stage. ### You can have a look into https://gitlab.in2p3.fr/escape2020/escape/template_project_escape/-/blob/master/.gitlab-ci.yml # - build_image script: ### 1 - Install dependencies in the image and upload the files to Zenodo - apt-get -y update ### INFORMATION FOR THE USER; Python, pip and wget are already installed in the container #- cat /etc/os-release # Debian GNU/Linux 10 (buster) #- pip3 --version # pip 20.1.1 #- python3 --version # 3.6.11 as th - pip3 install requests ### 2 - Get the last tag/release of the repository - export REPOSITORY_NAME=template_project_escape - export REPOSITORY_URL=https://gitlab.in2p3.fr/escape2020/escape/$REPOSITORY_NAME.git - export LAST_RELEASE=`git ls-remote --tags --refs --sort="v:refname" $REPOSITORY_URL | tail -n1 | sed 's/.*\///'` ### 3 - Download the repository and move it to the build directory ### If no release is found/correctly parsed, the script will download the last commit pushed to the master branch - mkdir -p build - > if [ -z "$LAST_RELEASE" ] then echo "No tag / new release found ! - Or error when parsing. Downloading last commit to the repository (master branch) ;" wget -O $REPOSITORY_NAME-master.zip https://gitlab.in2p3.fr/escape2020/escape/"$REPOSITORY_NAME"/-/archive/master/"$REPOSITORY_NAME"-master.zip mv $REPOSITORY_NAME-master.zip ./build else echo "$LAST_RELEASE tag / release found !" wget -O $REPOSITORY_NAME-$LAST_RELEASE.zip https://gitlab.in2p3.fr/escape2020/escape/"$REPOSITORY_NAME"/-/archive/"$LAST_RELEASE"/"$REPOSITORY_NAME"-"$LAST_RELEASE".zip mv $REPOSITORY_NAME-$LAST_RELEASE.zip ./build fi - ls ./build ### 4 - To deploy a NEW DEPOSIT to ZENODO SANDBOX - > python3 .zenodoci/upload_new_deposit.py --token $SANDBOX_ZENODO_TOKEN --sandbox_zenodo True --input-directory ./build ### 4 - To deploy a NEW DEPOSIT to ZENODO #- > # python3 .zenodoci/upload_new_deposit.py # --token $ZENODO_TOKEN # --sandbox_zenodo False # --input-directory ./build ### 4 - To deploy a NEW VERSION to ZENODO: The deposit_id of the entry to be `new_versioned` MUST be provided. - > python3 .zenodoci/upload_new_version_deposit.py --token $SANDBOX_ZENODO_TOKEN --sandbox_zenodo True --input-directory ./build --deposit_id $DEPOSIT_ID_ZENODOCI # --token $ZENODO_TOKEN # --sandbox_zenodo False only: ### Ideally this stage should be run only when a new release / tag of the source code is created (- tags). # The script is changed to check that the both `upload_new_deposit` and `upload_new_version_deposit` works nicely. - tags - master