aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-02-21 18:05:20 -0800
committerGravatar MarkKoz <[email protected]>2020-02-21 22:35:56 -0800
commit8b4938cb925a550d587867cf50d2d98df06d9f72 (patch)
treeacd4d964f65f0c754ecfb64ee078f6f364ee1fae
parentCI: diff base against master only if venv changed (diff)
CI: install dev dependencies inside running container
This change allows for the venv image to be pushed since it won't be built with dev dependencies.
-rw-r--r--ci/build.yml16
-rw-r--r--ci/setup.yml8
2 files changed, 15 insertions, 9 deletions
diff --git a/ci/build.yml b/ci/build.yml
index 139203e..fcde2e1 100644
--- a/ci/build.yml
+++ b/ci/build.yml
@@ -6,7 +6,7 @@ steps:
scriptPath: scripts/check_dockerfiles.sh
disableAutoCwd: true
- # Without a login the following Docker build tasks won't add image tags.
+ # Without a login, the following Docker build steps wouldn't add image tags.
- task: Docker@1
displayName: 'Log into Docker Hub'
inputs:
@@ -14,9 +14,9 @@ steps:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'DockerHub'
- # The venv image depends on this image. Build it if it can't be pulled
- # from Docker Hub, which will be the case if the base Dockerfile has had
- # changes.
+ # Building the venv depends on this base image. Build the base if it can't
+ # pulled from Docker Hub, which will be the case if the base Dockerfile has
+ # has had changes.
- script: |
docker build \
-f docker/base.Dockerfile \
@@ -25,11 +25,11 @@ steps:
displayName: 'Build Base Image'
condition: and(succeeded(), ne(variables['check.BASE_PULL'], True))
- # The dev image is never pushed and therefore is always built.
+ # Build the venv image if it's had changes.
- script: |
docker build \
-f docker/venv.Dockerfile \
- -t pythondiscord/snekbox-venv:dev \
- --build-arg DEV=1 \
+ -t pythondiscord/snekbox-venv:latest \
.
- displayName: 'Build Development Image'
+ displayName: 'Build Virtual Environment Image'
+ condition: and(succeeded(), ne(variables['check.VENV_CHANGED'], False))
diff --git a/ci/setup.yml b/ci/setup.yml
index 25530e7..cf190de 100644
--- a/ci/setup.yml
+++ b/ci/setup.yml
@@ -1,5 +1,6 @@
steps:
# The linter and all tests run inside this container.
+ # The venv image will be pulled if it doesn't exist locally.
- script: |
docker run \
--tty \
@@ -14,5 +15,10 @@ steps:
--volume "${PWD}":"${PWD}" \
--workdir "${PWD}"\
--entrypoint /bin/bash \
- pythondiscord/snekbox-venv:dev
+ pythondiscord/snekbox-venv:latest
displayName: 'Start Container'
+
+ - script: |
+ docker exec snekbox_test /bin/bash -c \
+ 'pipenv install --system --deploy --dev'
+ displayName: 'Install Development Dependencies'