mirror of
https://github.com/jimeh/dotkatapult.git
synced 2026-02-19 11:16:39 +00:00
chore: add Dockerfile and basic CI test
This commit is contained in:
21
.github/workflows/ci.yml
vendored
Normal file
21
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: CI
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.18
|
||||
- name: Install dependencies
|
||||
run: go mod download
|
||||
- name: Build binary
|
||||
run: make
|
||||
- name: Run and make request
|
||||
run: |
|
||||
./bin/dotkatapult --port=8080 &
|
||||
curl --silent --retry 10 --retry-delay 1 --retry-connrefused \
|
||||
http://localhost:8080/
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
bin/*
|
||||
/dotkatapult
|
||||
13
Dockerfile
Normal file
13
Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
||||
FROM golang:1.18-alpine as builder
|
||||
|
||||
RUN apk add --no-cache git make
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN env CGO_ENABLED=0 go build -a -o dotkatapult -ldflags "-s -w"
|
||||
|
||||
FROM scratch
|
||||
ENV PORT 8080
|
||||
EXPOSE 8080
|
||||
WORKDIR /
|
||||
COPY --from=builder /app/dotkatapult /
|
||||
CMD ["/dotkatapult"]
|
||||
24
Makefile
Normal file
24
Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
NAME = dotkatapult
|
||||
BINARY = bin/${NAME}
|
||||
VERSION ?= $(shell cat VERSION)
|
||||
SOURCES = $(shell find . -name '*.go' -o -name 'Makefile')
|
||||
|
||||
$(BINARY): $(SOURCES)
|
||||
CGO_ENABLED=0 go build -a -o ${BINARY} -ldflags "-s -w"
|
||||
|
||||
.PHONY: build
|
||||
build: $(BINARY)
|
||||
|
||||
.PHONY: run
|
||||
run: $(BINARY)
|
||||
$(BINARY)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(eval BIN_DIR := $(shell dirname ${BINARY}))
|
||||
if [ -f ${BINARY} ]; then rm ${BINARY}; fi
|
||||
if [ -d ${BIN_DIR} ]; then rmdir ${BIN_DIR}; fi
|
||||
|
||||
.PHONY: docker
|
||||
docker:
|
||||
docker build -t "$(shell whoami)/$(NAME)" .
|
||||
Reference in New Issue
Block a user