summaryrefslogtreecommitdiffstats
path: root/build/jenkins-build.sh
blob: de2236820f7a9e1c8ee29992e23e2266dc1499eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env bash

if [[ -n ${CIL_VERSION} ]]
then
  echo Using defined version: $CIL_VERSION
else

#get tag, remove first char ('v') and leave rest
export CIL_VERSION=`git describe --tags | tail -c +2`  
if [[ ${CIL_VERSION} == *"-"* ]]; then
  # detected dash means that it is dev version
  # version is then string-string and all after second dash is ignored (usually commit sha)
  export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2`
  # but dash is prohibited for conda build, replace with underscore
  export CIL_VERSION=`echo ${CIL_VERSION} | tr - _`
  echo Building dev version ${CIL_VERSION}
else
  echo Defining version from last git tag and commit: $CIL_VERSION
fi 

# Script to builds source code in Jenkins environment
# module try-load conda

# install miniconda if the module is not present
if hash conda 2>/dev/null; then
  echo using conda
else
  if [ ! -f Miniconda3-latest-Linux-x86_64.sh ]; then
    wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    chmod +x Miniconda3-latest-Linux-x86_64.sh
  fi
  ./Miniconda3-latest-Linux-x86_64.sh -u -b -p .
  PATH=$PATH:./bin
fi
# presume that git clone is done before this script is launched, if not, uncomment
#git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit
conda install -y conda-build
#cd CCPi-Regularisation-Toolkit # already there by jenkins
# need to call first build
conda build Wrappers/Python/conda-recipe
# then need to call the same with --output 
#- otherwise no build is done :-(, just fake file names are generated
export REG_FILES=`conda build Wrappers/Python/conda-recipe --output`
# REG_FILES variable should contain output files
echo files created: $REG_FILES
#upload to anaconda
if [[ -n ${CCPI_CONDA_TOKEN} ]]
then
  conda install anaconda-client
  while read -r outfile; do
    #if 0 commit after tag then call anaconda without --label dev
    #TODO if pull request??? do not upload 
    if [[ $CIL_VERSION == *"_"* ]]; then
      # upload with dev label
      anaconda -v -t ${CCPI_CONDA_TOKEN}  upload $outfile --force --label dev
    else 
      anaconda -v -t ${CCPI_CONDA_TOKEN}  upload $outfile --force
    fi
  done <<< "$REG_FILES"
else
  echo CCPI_CONDA_TOKEN not defined, will not upload to anaconda.
fi