Add make target to run tests, clippy, and the auto-formatter locally.
This commit is contained in:
		
							parent
							
								
									138d694b27
								
							
						
					
					
						commit
						424a970014
					
				
							
								
								
									
										39
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| SHELL := bash | ||||
| .ONESHELL: | ||||
| .SHELLFLAGS := -eu -o pipefail -c | ||||
| .DELETE_ON_ERROR: | ||||
| MAKEFLAGS += --warn-undefined-variables | ||||
| MAKEFLAGS += --no-builtin-rules | ||||
| OS:=$(shell uname -s) | ||||
| 
 | ||||
| ifeq ($(origin .RECIPEPREFIX), undefined) | ||||
|   $(error This Make does not support .RECIPEPREFIX. Please use GNU Make 4.0 or later) | ||||
| endif | ||||
| .RECIPEPREFIX = > | ||||
| 
 | ||||
| IMAGE_NAME:=natter | ||||
| TARGET := | ||||
| 
 | ||||
| .PHONY: help | ||||
| help: | ||||
| > @grep -h "##" $(MAKEFILE_LIST) | grep -v grep | sed -E 's/^([^:]*): *## */\1:  /'
 | ||||
| 
 | ||||
| .PHONY: docker_test | ||||
| docker_test: ## Run the rust tests
 | ||||
| > $(MAKE) -C docker/natter_development build | ||||
| > docker run --rm -i -t --mount type=tmpfs,destination=/tmp -v "$(shell readlink -f .):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "natter-cargo-registry:/usr/local/cargo/registry" natter-development cargo test | ||||
| 
 | ||||
| .PHONY: docker_clippy | ||||
| docker_clippy: ## Run static analysis of the code.
 | ||||
| > $(MAKE) -C docker/natter_development build | ||||
| > docker run --rm -i -t --mount type=tmpfs,destination=/tmp -v "$(shell readlink -f .):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "natter-cargo-registry:/usr/local/cargo/registry" natter-development cargo clippy --no-deps --all-targets --all-features -- -D warnings | ||||
| 
 | ||||
| .PHONY: docker_format | ||||
| docker_format: ## Auto-format source files.
 | ||||
| > $(MAKE) -C docker/natter_development build | ||||
| > docker run --rm -i -t --mount type=tmpfs,destination=/tmp -v "$(shell readlink -f .):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "natter-cargo-registry:/usr/local/cargo/registry" natter-development cargo fmt | ||||
| > docker run --rm -i -t --mount type=tmpfs,destination=/tmp -v "$(shell readlink -f .):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "natter-cargo-registry:/usr/local/cargo/registry" natter-development prettier --write --no-error-on-unmatched-pattern "default_environment/**/*.js" "default_environment/**/*.css" | ||||
| 
 | ||||
| .PHONY: clean | ||||
| clean: | ||||
| > $(MAKE) -C docker/natter_development clean | ||||
| @ -21,12 +21,14 @@ help: | ||||
| .PHONY: build | ||||
| build: ## Build the docker image.
 | ||||
| > docker build --tag $(IMAGE_NAME) --target=$(TARGET) --file Dockerfile . | ||||
| > docker volume create natter-cargo-registry | ||||
| 
 | ||||
| .PHONY: shell | ||||
| shell: ## Launch an interactive shell inside the docker image with the source repository mounted at /source.
 | ||||
| shell: build | ||||
| > docker run --rm -i -t --entrypoint /bin/sh --mount type=tmpfs,destination=/tmp -v "$$(readlink -f ../../):/source" --workdir=/source $(IMAGE_NAME) | ||||
| > docker run --rm -i -t --entrypoint /bin/sh --mount type=tmpfs,destination=/tmp -v "$$(readlink -f ../../):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "natter-cargo-registry:/usr/local/cargo/registry" $(IMAGE_NAME) | ||||
| 
 | ||||
| .PHONY: clean | ||||
| clean: | ||||
| > docker rmi $(IMAGE_NAME) | ||||
| > docker volume rm natter-cargo-registry | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander