@@ -8,54 +8,50 @@ DOCKER_PROJECT_IMAGE_TAG ?= $(PROJECT_NAME):latest
88# Connect settings
99CONNECT_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
2528CONNECT_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
4750clean :
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
8877down : $(CONNECT_VERSIONS:%=down-% )
8978down-% : DOCKER_CONNECT_IMAGE_TAG=jammy-$*
9079down-% : CONNECT_VERSION=$*
9180down-% :
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
10590up : $(CONNECT_VERSIONS:%=up-% )
10691up-% : CONNECT_VERSION=$*
10792up-% : DOCKER_CONNECT_IMAGE_TAG=jammy-$*
10893up-% : 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.
138127test :
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;
0 commit comments