diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..7b4daf6 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,55 @@ +--- +kind: pipeline +type: docker + +platform: + os: linux + arch: amd64 + +steps: + - name: build-ui + image: node:24 + commands: + - make web + + - name: test + image: golang:1.24.0 + commands: + - make test + + - name: build-backend + image: golang:1.24.0 + commands: + - make binary + + - name: image + image: plugins/docker + settings: + registry: registry.itzana.me + repo: registry.itzana.me/strafesnet/dev-service + tags: + - ${DRONE_BRANCH}-${DRONE_BUILD_NUMBER} + - ${DRONE_BRANCH} + username: + from_secret: REGISTRY_USER + password: + from_secret: REGISTRY_PASS + when: + branch: + - master + - staging + + - name: deploy + image: argoproj/argocd:latest + commands: + - argocd login --grpc-web cd.stricity.com --username $USERNAME --password $PASSWORD + - argocd app --grpc-web set ${DRONE_BRANCH}-dev-service --kustomize-image registry.itzana.me/strafesnet/dev-service:${DRONE_BRANCH}-${DRONE_BUILD_NUMBER} + environment: + USERNAME: + from_secret: ARGO_USER + PASSWORD: + from_secret: ARGO_PASS + when: + branch: + - master + - staging \ No newline at end of file diff --git a/.gitignore b/.gitignore index 723ef36..4afcf19 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.idea \ No newline at end of file +.idea +build \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6d2ed5c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM alpine +COPY build/server / +ENTRYPOINT ["/server"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6b5f12f --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +clean: + rm -rf build + rm -rf web/dist + +test: + go fmt ./... + go vet ./... + go test -race ./... + +web: + cd web && npm install && npm run build + +binary: + CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o build/server cmd/dev-service/service.go + +build: web binary + +docker: + docker build . -t git.itzana.me/strafesnet/dev-service:latest + docker push git.itzana.me/strafesnet/dev-service:latest + +all: clean build docker + +.PHONY: clen test web binary build docker all \ No newline at end of file