diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index dbd73bcad3f374b51c0cd9b9135f7a09b6dd9ed3..e5e2480954c1f2745310b668b7795bc4bd1e7813 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,6 +8,8 @@ basic_build_check:
     - build
   script:
     - source /var/lib/gitlab-runner/.bashrc
+    # create or update the existing environment to the newest pelican version
+    - conda env update -f build_environment.yml
     - conda activate rain_site
     - make clean
     - make publish
diff --git a/README.md b/README.md
index be4368862866ffe3de270796f97d589dc8ae80cc..1f992483d730d00d46275dee169517e8c89b6175 100644
--- a/README.md
+++ b/README.md
@@ -64,7 +64,9 @@ initializes a bashrc for the `gitlab-runner` user.
 sudo -u gitlab-runner /home/davidh/miniconda3/bin/conda init bash
 ```
 
-This will 
+Or where ever conda is installed for this system. This will create a bashrc
+file for the gitlab-runner user to make the `conda` command available. This
+is used in the `.gitlab-ci.yml` scripts for creating a build environment.
 
 ### GitLab Runner Upload
 
diff --git a/build_environment.yml b/build_environment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31803d0b578fb48cc808df34e00c2d69971a6592
--- /dev/null
+++ b/build_environment.yml
@@ -0,0 +1,8 @@
+name: rain_site
+channels:
+  - conda-forge
+  - defaults
+dependencies:
+  - pelican
+  - nodejs
+  - python=3.7