sdkman-for-fish/test/Dockerfile
Raphael Reitzig 5c886dcd1c feat(ci): Prevent test runs outside of container
It's not safe, we write and delete files all over the place!
2024-04-03 23:56:16 +02:00

53 lines
1.3 KiB
Docker

FROM ubuntu
# Install dependencies
RUN apt-get update \
&& apt-get -y install \
build-essential \
curl \
fish \
nano \
ruby \
ruby-dev \
tree \
unzip \
zip \
&& apt-get clean \
&& gem install bundler
WORKDIR app
COPY test/Gemfile ./
RUN bundle install \
&& rm Gemfile
# Switch to non-root user for test context
ARG TEST_HOME="/home/test"
RUN groupadd -r test \
&& useradd --no-log-init -r -g test -m -d $TEST_HOME test
USER test
RUN curl -s "https://get.sdkman.io" | bash
# To speed up tests, uncomment this shared setup:
SHELL ["/bin/bash", "-c"]
RUN source "$TEST_HOME/.sdkman/bin/sdkman-init.sh" \
&& sdk install ant 1.9.7 \
&& sdk install ant 1.9.9 \
&& sdk install ant 1.10.1 \
&& sdk install kscript 1.5.0 \
&& sdk install kscript 1.6.0
# "Install" sdkman-for-fish
RUN mkdir -p $TEST_HOME/.config/fish/
COPY --chown=test:test completions $TEST_HOME/.config/fish/completions/
COPY --chown=test:test conf.d $TEST_HOME/.config/fish/conf.d/
COPY --chown=test:test functions $TEST_HOME/.config/fish/functions/
RUN ls -R $TEST_HOME/.config/fish/
# Signal we're safely running in a container;
# we abort the tests to avoid breaking the host system!
ENV RUNNING_IN_CONTAINER=yessir
# Run tests
COPY test ./
ENTRYPOINT ["cucumber"]
CMD ["--publish-quiet", "--tags", "not @pending"]