tidy Docker/Makefiles and config.fish
This commit is contained in:
19
Dockerfile
19
Dockerfile
@@ -4,27 +4,28 @@ from ubuntu:bionic
|
||||
# (usually) Cached steps
|
||||
# ---------------------------------------------------------------------------- #
|
||||
|
||||
# Set FAST_MODE to prevent git and upgrade
|
||||
# See bootstrap.sh
|
||||
ENV FAST_MODE="true"
|
||||
ENV WORKSPACE="$HOME/workspace"
|
||||
|
||||
# Install sudo for compatibility, git since it is skipped, make
|
||||
# Triple quiet mode (-qq implies -y, pipe to /dev/null)
|
||||
# Set Noninteractive
|
||||
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||
|
||||
# Install sudo for compatibility, git since built-in is skipped, make
|
||||
RUN apt-get -y update \
|
||||
&& apt-get -y install sudo git make
|
||||
|
||||
# Create user with sudo priviledge
|
||||
ENV USER="test-user"
|
||||
RUN useradd --create-home -m $USER \
|
||||
&& adduser $USER sudo
|
||||
RUN echo "$USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
RUN useradd --create-home -m "$USER" \
|
||||
&& adduser "$USER" sudo
|
||||
RUN echo "$USER ALL=(ALL) NOPASSWD: ALL" \
|
||||
>> /etc/sudoers
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Filesystem copy steps
|
||||
# ---------------------------------------------------------------------------- #
|
||||
|
||||
# Copy dotfiles in
|
||||
ADD --chown=test-user . "$WORKSPACE/dotfiles"
|
||||
WORKDIR "$WORKSPACE/dotfiles"
|
||||
|
||||
@@ -32,7 +33,6 @@ WORKDIR "$WORKSPACE/dotfiles"
|
||||
# Install steps
|
||||
# ---------------------------------------------------------------------------- #
|
||||
|
||||
# Run installer
|
||||
USER test-user
|
||||
RUN make install
|
||||
|
||||
@@ -40,5 +40,4 @@ RUN make install
|
||||
# Test steps
|
||||
# ---------------------------------------------------------------------------- #
|
||||
|
||||
# Run tests
|
||||
CMD ["make", "test"]
|
||||
CMD ["cd", "tests", "&&", "make"]
|
||||
|
||||
16
Makefile
16
Makefile
@@ -5,9 +5,7 @@
|
||||
.PHONY: install clean
|
||||
|
||||
# Install dotfiles locally
|
||||
install: SHELL:=/bin/bash
|
||||
install:
|
||||
chmod +x ./bootstrap.sh
|
||||
./bootstrap.sh
|
||||
|
||||
# Clean up after install
|
||||
@@ -17,12 +15,16 @@ clean:
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Docker commands
|
||||
# ---------------------------------------------------------------------------- #
|
||||
.PHONY: build run
|
||||
.PHONY: build run use
|
||||
|
||||
# Build and tag latest docker image
|
||||
# Build and tag docker image
|
||||
build:
|
||||
docker build . -t dotfiles:latest
|
||||
docker build . -t dotfiles
|
||||
|
||||
# Run latest docker container
|
||||
# Run tests in docker container
|
||||
run:
|
||||
docker run -it dotfiles:latest /bin/bash
|
||||
docker run dotfiles
|
||||
|
||||
# Launch bash in docker container
|
||||
use:
|
||||
docker run -it dotfiles /bin/bash
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
# Pyenv
|
||||
setenv PYENV_ROOT "$HOME/.pyenv"
|
||||
setenv PATH "$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"
|
||||
# .local
|
||||
set -x PATH $HOME/.local/bin $PATH
|
||||
|
||||
# Poetry
|
||||
set -gx PATH $HOME/.poetry/bin $PATH
|
||||
# pyenv
|
||||
set PYENV_ROOT $HOME/.pyenv
|
||||
set -x PATH $PYENV_ROOT/bin $PATH
|
||||
set -x PATH $PYENV_ROOT/shims $PATH
|
||||
|
||||
# poetry
|
||||
set PYENV_ROOT $HOME/.pyenv
|
||||
set -x PATH $PYENV_ROOT/bin $PATH
|
||||
|
||||
# Wipe greeting
|
||||
set fish_greeting
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
# dotfiles tests Makefile
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Test commands
|
||||
# ---------------------------------------------------------------------------- #
|
||||
.PHONY: test
|
||||
|
||||
# Import .bashrc and run test suite
|
||||
test: SHELL:=/bin/bash
|
||||
test:
|
||||
all: SHELL:=/bin/bash
|
||||
all:
|
||||
source ~/.bashrc
|
||||
poetry install
|
||||
poetry run pytest
|
||||
|
||||
Reference in New Issue
Block a user