Skip to content

Commit c452943

Browse files
committed
build: add PYTEST_ARGS to integration/Makefile. (#358)
Adds PYTEST_ARGS environment variable `integration/Makefile`. This allows additional arguments to be passed to pytest at runtime. For example, `PYTEST_ARGS='-k TestJobs' make latest` will execute as `pytest -k TestJobs`. This change also includes other quality-of-life improvements to the Makefile.
1 parent da18586 commit c452943

File tree

2 files changed

+48
-58
lines changed

2 files changed

+48
-58
lines changed

integration/Makefile

Lines changed: 47 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,54 +8,50 @@ DOCKER_PROJECT_IMAGE_TAG ?= $(PROJECT_NAME):latest
88
# Connect settings
99
CONNECT_BOOTSTRAP_SECRETKEY ?= $(shell head -c 32 /dev/random | base64)
1010

11+
# pytest settings
12+
PYTEST_ARGS ?= "-s"
13+
1114
.DEFAULT_GOAL := latest
1215

1316
.PHONY: $(CONNECT_VERSIONS) \
14-
all \
15-
build \
16-
down \
17-
down-% \
18-
latest \
19-
test \
20-
up \
21-
up-% \
22-
help
17+
all \
18+
build \
19+
down \
20+
down-% \
21+
latest \
22+
test \
23+
up \
24+
up-% \
25+
help
2326

2427
# Versions
2528
CONNECT_VERSIONS := \
26-
2024.11.0 \
27-
2024.09.0 \
28-
2024.08.0 \
29-
2024.06.0 \
30-
2024.05.0 \
31-
2024.04.1 \
32-
2024.04.0 \
33-
2024.03.0 \
34-
2024.02.0 \
35-
2024.01.0 \
36-
2023.12.0 \
37-
2023.10.0 \
38-
2023.09.0 \
39-
2023.07.0 \
40-
2023.06.0 \
41-
2023.05.0 \
42-
2023.01.1 \
43-
2023.01.0 \
44-
2022.12.0 \
45-
2022.11.0
29+
2024.11.0 \
30+
2024.09.0 \
31+
2024.08.0 \
32+
2024.06.0 \
33+
2024.05.0 \
34+
2024.04.1 \
35+
2024.04.0 \
36+
2024.03.0 \
37+
2024.02.0 \
38+
2024.01.0 \
39+
2023.12.0 \
40+
2023.10.0 \
41+
2023.09.0 \
42+
2023.07.0 \
43+
2023.06.0 \
44+
2023.05.0 \
45+
2023.01.1 \
46+
2023.01.0 \
47+
2022.12.0 \
48+
2022.11.0
4649

4750
clean:
4851
rm -rf logs reports
4952
find . -type d -empty -delete
5053

5154
# Run test suite for a specific Connect version.
52-
#
53-
# Matches any version defined in CONNECT_VERSIONS.
54-
#
55-
# Examples:
56-
# ---------
57-
# make 2024.05.1
58-
# make 2023.01.0
5955
$(CONNECT_VERSIONS): %: down-% up-%
6056

6157
# Run test suite against all Connect versions.
@@ -78,39 +74,29 @@ build:
7874
docker build -t $(DOCKER_PROJECT_IMAGE_TAG) ..
7975

8076
# Tear down resources.
81-
#
82-
# Destroy Docker resources for Connect version.
83-
#
84-
# Examples:
85-
# ---------
86-
# make down
87-
# make down-2024.05.0
8877
down: $(CONNECT_VERSIONS:%=down-%)
8978
down-%: DOCKER_CONNECT_IMAGE_TAG=jammy-$*
9079
down-%: CONNECT_VERSION=$*
9180
down-%:
9281
CONNECT_BOOTSTRAP_SECRETKEY=$(CONNECT_BOOTSTRAP_SECRETKEY) \
93-
DOCKER_CONNECT_IMAGE=$(DOCKER_CONNECT_IMAGE) \
94-
DOCKER_CONNECT_IMAGE_TAG=$(DOCKER_CONNECT_IMAGE_TAG) \
9582
CONNECT_VERSION=$* \
83+
DOCKER_CONNECT_IMAGE_TAG=$(DOCKER_CONNECT_IMAGE_TAG) \
84+
DOCKER_CONNECT_IMAGE=$(DOCKER_CONNECT_IMAGE) \
9685
DOCKER_PROJECT_IMAGE_TAG=$(DOCKER_PROJECT_IMAGE_TAG) \
86+
PYTEST_ARGS="$(PYTEST_ARGS)" \
9787
$(DOCKER_COMPOSE) -p $(PROJECT_NAME)-$(subst .,-,$(CONNECT_VERSION)) down -v
9888

9989
# Create, start, and run Docker Compose.
100-
#
101-
# Examples:
102-
# ---------
103-
# make up
104-
# make up-2024.05.0
10590
up: $(CONNECT_VERSIONS:%=up-%)
10691
up-%: CONNECT_VERSION=$*
10792
up-%: DOCKER_CONNECT_IMAGE_TAG=jammy-$*
10893
up-%: build
10994
CONNECT_BOOTSTRAP_SECRETKEY=$(CONNECT_BOOTSTRAP_SECRETKEY) \
110-
DOCKER_CONNECT_IMAGE=$(DOCKER_CONNECT_IMAGE) \
111-
DOCKER_CONNECT_IMAGE_TAG=$(DOCKER_CONNECT_IMAGE_TAG) \
11295
CONNECT_VERSION=$* \
96+
DOCKER_CONNECT_IMAGE_TAG=$(DOCKER_CONNECT_IMAGE_TAG) \
97+
DOCKER_CONNECT_IMAGE=$(DOCKER_CONNECT_IMAGE) \
11398
DOCKER_PROJECT_IMAGE_TAG=$(DOCKER_PROJECT_IMAGE_TAG) \
99+
PYTEST_ARGS="$(PYTEST_ARGS)" \
114100
$(DOCKER_COMPOSE) -p $(PROJECT_NAME)-$(subst .,-,$(CONNECT_VERSION)) up -V --abort-on-container-exit --no-build
115101

116102
# Show help message.
@@ -120,7 +106,7 @@ help:
120106
@echo " latest Run test suite for latest Connect version."
121107
@echo " preview Run test suite for preview Connect version."
122108
@echo " <version> Run test suite for the specified Connect version. (e.g., make 2024.05.0)"
123-
@echo " up Start Docker Compose for all Connect version."
109+
@echo " up Start Docker Compose for all Connect versions."
124110
@echo " down Tear down Docker resources for all Connect versions."
125111
@echo " clean Clean up the project directory."
126112
@echo " help Show this help message."
@@ -130,15 +116,18 @@ help:
130116
@echo " make latest Run test suite for latest Connect version."
131117
@echo " make preview Run test suite for preview Connect version."
132118
@echo " make 2024.05.0 Run test suite for specific Connect version."
119+
@echo
120+
@echo "Environment Variables:"
121+
@echo " DOCKER_COMPOSE Command to invoke Docker Compose. Default: docker compose"
122+
@echo " DOCKER_CONNECT_IMAGE Docker image name for Connect. Default: rstudio/rstudio-connect"
123+
@echo " DOCKER_PROJECT_IMAGE_TAG Docker image name and tag for the project image. Default: $(PROJECT_NAME):latest"
124+
@echo " PYTEST_ARGS Arguments to pass to pytest. Default: \"-s\""
133125

134126
# Run tests.
135-
#
136-
# Typically call from docker-compose.yaml. Assumes Connect server is running
137-
# on local network.
138127
test:
139128
mkdir -p logs
140129
set -o pipefail; \
141-
CONNECT_VERSION=${CONNECT_VERSION} \
130+
CONNECT_VERSION=${CONNECT_VERSION} \
142131
CONNECT_API_KEY="$(shell $(UV) run rsconnect bootstrap -i -s http://connect:3939 --raw)" \
143-
$(UV) run pytest -s --junit-xml=./reports/$(CONNECT_VERSION).xml | \
132+
$(UV) run pytest $(PYTEST_ARGS) --junit-xml=./reports/$(CONNECT_VERSION).xml | \
144133
tee ./logs/$(CONNECT_VERSION).log;

integration/compose.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
# Port 3939 is the default port for Connect
1313
- CONNECT_SERVER=http://connect:3939
1414
- CONNECT_VERSION=${CONNECT_VERSION}
15+
- PYTEST_ARGS=${PYTEST_ARGS}
1516
volumes:
1617
- .:/sdk/integration
1718
depends_on:

0 commit comments

Comments
 (0)