2025-03-02 11:47:10 +01:00
|
|
|
variables:
|
|
|
|
- &golang_image 'golang:1.24'
|
|
|
|
|
|
|
|
steps:
|
2025-03-02 11:37:44 +01:00
|
|
|
backend-lint:
|
2025-03-02 11:47:10 +01:00
|
|
|
image: *golang_image
|
2025-03-02 11:37:44 +01:00
|
|
|
commands:
|
|
|
|
- go vet ./...
|
|
|
|
- go fmt ./...
|
2025-03-02 11:47:10 +01:00
|
|
|
when:
|
|
|
|
event: [push, tag]
|
2025-03-02 11:37:44 +01:00
|
|
|
|
|
|
|
frontend-lint:
|
|
|
|
image: node:20
|
|
|
|
commands:
|
|
|
|
- cd web
|
|
|
|
- npm ci
|
|
|
|
- npm run lint
|
|
|
|
|
|
|
|
frontend-build:
|
|
|
|
image: node:20
|
|
|
|
commands:
|
|
|
|
- cd web
|
|
|
|
- npm ci
|
|
|
|
- npm run build
|
2025-03-02 11:47:10 +01:00
|
|
|
depends_on:
|
|
|
|
- frontend-lint
|
2025-03-02 11:37:44 +01:00
|
|
|
when:
|
2025-03-02 11:47:10 +01:00
|
|
|
event: [ push, tag ]
|
2025-03-02 11:37:44 +01:00
|
|
|
|
|
|
|
backend-build:
|
2025-03-02 11:47:10 +01:00
|
|
|
image: *golang_image
|
2025-03-02 11:37:44 +01:00
|
|
|
commands:
|
|
|
|
- go mod download
|
|
|
|
- go generate ./...
|
|
|
|
# Build with embedded frontend
|
|
|
|
- go build -o inventory -ldflags="-s -w" .
|
2025-03-02 11:47:10 +01:00
|
|
|
depends_on:
|
|
|
|
- frontend-build
|
|
|
|
- backend-lint
|
2025-03-02 11:37:44 +01:00
|
|
|
when:
|
2025-03-02 11:47:10 +01:00
|
|
|
event: [ push, tag ]
|
2025-03-02 11:37:44 +01:00
|
|
|
|
|
|
|
# Create artifacts
|
|
|
|
artifacts:
|
|
|
|
image: alpine:latest
|
|
|
|
commands:
|
|
|
|
- mkdir -p artifacts
|
|
|
|
- cp inventory artifacts/
|
|
|
|
- tar -czvf artifacts/inventory.tar.gz inventory
|
2025-03-02 11:47:10 +01:00
|
|
|
depends_on:
|
|
|
|
- backend-build
|
2025-03-02 11:37:44 +01:00
|
|
|
when:
|
2025-03-02 11:47:10 +01:00
|
|
|
event: [ push, tag ]
|
2025-03-02 11:37:44 +01:00
|
|
|
|
|
|
|
# Optional step for creating a Docker image
|
2025-03-02 11:47:10 +01:00
|
|
|
#docker-build:
|
|
|
|
# image: plugins/docker
|
|
|
|
# settings:
|
|
|
|
# repo: ${DRONE_REPO_OWNER}/inventory
|
|
|
|
# tags:
|
|
|
|
# - latest
|
|
|
|
# - ${DRONE_TAG##v}
|
|
|
|
# dockerfile: Dockerfile
|
|
|
|
# depends_on:
|
|
|
|
# - backend-lint
|
|
|
|
# - frontend-lint
|
|
|
|
# when:
|
|
|
|
# branch: main
|
|
|
|
# event: [push, tag]
|