46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# Builds a release container
 | 
						|
[private]
 | 
						|
build-container-release: 
 | 
						|
    podman build -t ttime-server -f container/Containerfile .
 | 
						|
 | 
						|
# Builds a release container and runs it
 | 
						|
start-release: build-container-release remove-podman-containers
 | 
						|
    podman run -d -e DATABASE_URL=sqlite:release.db -p 8080:8080 --name ttime ttime-server
 | 
						|
    @echo "Started production ttime-server on http://localhost:8080"
 | 
						|
 | 
						|
# Removes and stops any containers related to the project
 | 
						|
[private]
 | 
						|
remove-podman-containers:
 | 
						|
    podman container rm -fi ttime
 | 
						|
 | 
						|
# Saves the release container to a tarball, pigz is just gzip but multithreaded
 | 
						|
save-release: build-container-release
 | 
						|
    podman save --format=oci-archive ttime-server | pigz -9 > ttime-server_`date -I`_`git rev-parse --short HEAD`.tar.gz
 | 
						|
 | 
						|
# Loads the release container from a tarball
 | 
						|
load-release file:
 | 
						|
    podman load --input {{file}}
 | 
						|
 | 
						|
# Tests every part of the project
 | 
						|
testall:
 | 
						|
    cd frontend && npm test
 | 
						|
    cd frontend && npm run lint
 | 
						|
    cd backend && make test
 | 
						|
    cd backend && make lint
 | 
						|
 | 
						|
# Cleans up everything related to the project
 | 
						|
clean: remove-podman-containers
 | 
						|
    podman image rm -fi ttime-server
 | 
						|
    rm -rf frontend/dist
 | 
						|
    rm -rf frontend/node_modules
 | 
						|
    rm -f ttime-server.tar.gz
 | 
						|
    cd backend && make clean
 | 
						|
    @echo "Cleaned up!"
 | 
						|
 | 
						|
# Cleans up everything related to podman, not just the project. Make sure you understand what this means.
 | 
						|
[confirm]
 | 
						|
podman-clean:
 | 
						|
    podman system reset --force
 | 
						|
 | 
						|
install-linter:
 | 
						|
    curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.56.2
 |