Working initial setup
parent
1184a2fb33
commit
ae5965f2e1
@ -0,0 +1,21 @@
|
|||||||
|
ARG BASE_IMAGE
|
||||||
|
FROM ${BASE_IMAGE:-golang:1.22}
|
||||||
|
ARG REPO_NAME
|
||||||
|
ARG REPO_SHA
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Download Go modules
|
||||||
|
COPY go.mod ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
COPY *.go ./
|
||||||
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /fluxfeed
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
LABEL io.runcible.repo-name="${REPO_NAME}" \
|
||||||
|
io.runcible.repo-sha="${REPO_SHA}"
|
||||||
|
|
||||||
|
CMD ["/fluxfeed"]
|
@ -0,0 +1,36 @@
|
|||||||
|
.DEFAULT_GOAL := build
|
||||||
|
BASE_GOLANG_IMAGE := golang:1.22
|
||||||
|
IMAGE_NAME ?= androiddrew/fluxfeed
|
||||||
|
|
||||||
|
fmt:
|
||||||
|
go fmt ./...
|
||||||
|
.PHONY:fmt
|
||||||
|
|
||||||
|
lint: fmt
|
||||||
|
revive ./...
|
||||||
|
.PHONY:lint
|
||||||
|
|
||||||
|
vet: fmt
|
||||||
|
go vet ./...
|
||||||
|
.PHONY:vet
|
||||||
|
|
||||||
|
build: vet
|
||||||
|
go build -o ./fluxfeed .
|
||||||
|
.PHONY:build
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf ./fluxfeed
|
||||||
|
.PHONY:clean
|
||||||
|
|
||||||
|
docs:
|
||||||
|
echo "Starting godocs on http://localhost:8000"
|
||||||
|
godoc -http=:8000
|
||||||
|
.PHONY:docs
|
||||||
|
|
||||||
|
image:
|
||||||
|
docker buildx build --platform linux/amd64 \
|
||||||
|
--build-arg BASE_IMAGE=$(BASE_GOLANG_IMAGE) \
|
||||||
|
--build-arg REPO_NAME=$(IMAGE_NAME) \
|
||||||
|
--build-arg REPO_SHA=$(shell git rev-parse HEAD) \
|
||||||
|
-t $(IMAGE_NAME) ./
|
||||||
|
.PHONY: image
|
@ -0,0 +1,3 @@
|
|||||||
|
module git.runcible.io/androiddrew/fluxfeed
|
||||||
|
|
||||||
|
go 1.22.5
|
@ -0,0 +1,17 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
const FluxGreeting string = "Welcome to Flux Feed\n"
|
||||||
|
|
||||||
|
func HelloFluxFeed(out io.Writer) {
|
||||||
|
fmt.Fprint(out, FluxGreeting)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
HelloFluxFeed(os.Stdout)
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestCliGreeting(t *testing.T) {
|
||||||
|
buffer := &bytes.Buffer{}
|
||||||
|
|
||||||
|
HelloFluxFeed(buffer)
|
||||||
|
got := buffer.String()
|
||||||
|
want := FluxGreeting
|
||||||
|
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("Got %s but wanted %s", got, want)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue