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