| 
									
										
										
										
											2023-07-08 19:25:26 +00:00
										 |  |  | FROM ubuntu:23.04
 | 
					
						
							| 
									
										
										
										
											2017-01-05 22:03:47 +00:00
										 |  |  | MAINTAINER Tim Byrne <sultan@locehilios.com>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  | # Shellcheck and esh versions
 | 
					
						
							| 
									
										
										
										
											2023-07-08 19:25:26 +00:00
										 |  |  | ARG SC_VER=0.9.0
 | 
					
						
							|  |  |  | ARG ESH_VER=0.3.2
 | 
					
						
							| 
									
										
										
										
											2020-12-21 21:30:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  | # Install prerequisites and configure UTF-8 locale
 | 
					
						
							| 
									
										
										
										
											2019-03-01 04:28:32 +00:00
										 |  |  | RUN \
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  |   echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
 | 
					
						
							|  |  |  |   && apt-get update \
 | 
					
						
							|  |  |  |   && DEBIAN_FRONTEND=noninteractive \
 | 
					
						
							|  |  |  |     apt-get install -y --no-install-recommends \
 | 
					
						
							| 
									
										
										
										
											2019-03-01 04:28:32 +00:00
										 |  |  |     expect \
 | 
					
						
							|  |  |  |     git \
 | 
					
						
							| 
									
										
										
										
											2019-12-01 02:15:46 +00:00
										 |  |  |     gnupg \
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  |     locales \
 | 
					
						
							| 
									
										
										
										
											2019-03-01 04:28:32 +00:00
										 |  |  |     lsb-release \
 | 
					
						
							|  |  |  |     make \
 | 
					
						
							| 
									
										
										
										
											2020-01-20 14:21:57 +00:00
										 |  |  |     man \
 | 
					
						
							| 
									
										
										
										
											2019-03-01 04:28:32 +00:00
										 |  |  |     python3-pip \
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  |     vim-tiny \
 | 
					
						
							|  |  |  |     xz-utils \
 | 
					
						
							|  |  |  |   && rm -rf /var/lib/apt/lists/* \
 | 
					
						
							|  |  |  |   && update-locale LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
 | 
					
						
							| 
									
										
										
										
											2020-12-21 21:30:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  | ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Convenience settings for the testbed's root account
 | 
					
						
							|  |  |  | RUN echo 'set -o vi' >> /root/.bashrc
 | 
					
						
							| 
									
										
										
										
											2020-12-21 21:30:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  | # Create a flag to identify when running inside the yadm testbed
 | 
					
						
							|  |  |  | RUN touch /.yadmtestbed
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Install shellcheck
 | 
					
						
							|  |  |  | ADD https://github.com/koalaman/shellcheck/releases/download/v$SC_VER/shellcheck-v$SC_VER.linux.x86_64.tar.xz /opt
 | 
					
						
							|  |  |  | RUN cd /opt \
 | 
					
						
							|  |  |  |   && tar xf shellcheck-v$SC_VER.linux.x86_64.tar.xz \
 | 
					
						
							|  |  |  |   && rm -f shellcheck-v$SC_VER.linux.x86_64.tar.xz \
 | 
					
						
							|  |  |  |   && ln -s /opt/shellcheck-v$SC_VER/shellcheck /usr/local/bin
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Upgrade pip3 and install requirements
 | 
					
						
							| 
									
										
										
										
											2020-12-21 21:30:28 +00:00
										 |  |  | COPY test/requirements.txt /tmp/requirements.txt
 | 
					
						
							| 
									
										
										
										
											2023-07-08 19:25:26 +00:00
										 |  |  | RUN python3 -m pip install --break-system-packages --upgrade pip setuptools \
 | 
					
						
							|  |  |  |   && python3 -m pip install --break-system-packages --upgrade -r /tmp/requirements.txt \
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  |   && rm -f /tmp/requirements
 | 
					
						
							| 
									
										
										
										
											2017-01-05 22:03:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 13:42:58 +00:00
										 |  |  | # Install esh
 | 
					
						
							|  |  |  | ADD https://raw.githubusercontent.com/jirutka/esh/v$ESH_VER/esh /usr/local/bin
 | 
					
						
							|  |  |  | RUN chmod +x /usr/local/bin/esh
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Create workdir and dummy Makefile to be used if no /yadm volume is mounted
 | 
					
						
							|  |  |  | RUN mkdir /yadm \
 | 
					
						
							|  |  |  |   && echo "test:" > /yadm/Makefile \
 | 
					
						
							|  |  |  |   && echo "\t@echo 'The yadm project must be mounted at /yadm'" >> /yadm/Makefile \
 | 
					
						
							|  |  |  |   && echo "\t@echo 'Try using a docker parameter like -v \"\$\$PWD:/yadm:ro\"'" >> /yadm/Makefile \
 | 
					
						
							|  |  |  |   && echo "\t@false" >> /yadm/Makefile
 | 
					
						
							| 
									
										
										
										
											2020-05-20 02:27:14 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 18:49:41 +00:00
										 |  |  | # Include released versions of yadm to test upgrades
 | 
					
						
							|  |  |  | ADD https://raw.githubusercontent.com/TheLocehiliosan/yadm/1.12.0/yadm /usr/local/bin/yadm-1.12.0
 | 
					
						
							|  |  |  | ADD https://raw.githubusercontent.com/TheLocehiliosan/yadm/2.5.0/yadm /usr/local/bin/yadm-2.5.0
 | 
					
						
							|  |  |  | RUN chmod +x /usr/local/bin/yadm-*
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-29 18:51:55 +00:00
										 |  |  | # Configure git to make it easier to test yadm manually
 | 
					
						
							|  |  |  | RUN git config --system user.email "test@yadm.io" \
 | 
					
						
							|  |  |  |   && git config --system user.name "Yadm Test"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-05 22:03:47 +00:00
										 |  |  | # /yadm will be the work directory for all tests
 | 
					
						
							|  |  |  | # docker commands should mount the local yadm project as /yadm
 | 
					
						
							|  |  |  | WORKDIR /yadm
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # By default, run all tests defined
 | 
					
						
							|  |  |  | CMD make test
 |