I'm trying to activate a conda environment in my Jenkinsfile, which was created from a Dockerbuild, but I can't figure out how to activate the environment in the shell script in my Jenkinsfile.
But this line . /opt/conda/envs/myapp-env/bin/activate fails on activating in my Jenkinsfile
Dockerfile
FROM continuumio/miniconda3:latest
WORKDIR /tmp/app
COPY environment.yml environment.yml
#missing dependencies
RUN conda config --add channels conda-forge \
&& conda env create -n myapp-env -f environment.yml \
&& rm -rf /opt/conda/pkgs/*
ENV PATH /opt/conda/envs/myapp-env/bin:$PATH
RUN echo $PATH
RUN conda env list
Jenkinsfile:
try {
stage('Activate environment & Unit Test') {
buildImage.inside {
sh '''
echo $PATH
echo $HOME
. /opt/conda/envs/myapp-env/bin/activate && python -m pytest tests --cov ./server --cov-report term-missing --cov-report xml --junitxml=build/results.xml
'''
}
}
Result of echo $PATH and $HOME:
Running shell script
+ echo /opt/conda/envs/dfog-app/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/conda/envs/myapp-env/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo /