Merge pull request 'Use woodpecker for CI' (#8) from woodpecker into master
All checks were successful
continuous-integration/drone/push Build is passing
ci/woodpecker/push/woodpecker Pipeline was successful

Reviewed-on: #8
This commit is contained in:
Jan Bader 2022-02-13 14:16:38 +01:00
commit 41c5095b8b
6 changed files with 71 additions and 12 deletions

View File

@ -8,3 +8,4 @@ config.example.json
.vscode/ .vscode/
budgeteer budgeteer
budgeteer.exe budgeteer.exe
**/node_modules/

View File

@ -6,8 +6,9 @@ name: budgeteer
steps: steps:
- name: Taskfile.dev - name: Taskfile.dev
image: hub.javil.eu/budgeteer:dev image: hub.javil.eu/budgeteer:dev
pull: true
commands: commands:
- task build - task
- name: docker - name: docker
image: plugins/docker image: plugins/docker

23
.woodpecker.yml Normal file
View File

@ -0,0 +1,23 @@
pipeline:
build:
name: Taskfile.dev
image: hub.javil.eu/budgeteer:dev
pull: true
commands:
- task
docker:
image: plugins/docker
secrets: [ docker_username, docker_password ]
settings:
registry: hub.javil.eu
repo: hub.javil.eu/budgeteer
context: build
dockerfile: build/Dockerfile
tags:
- latest
when:
event: [push, tag, deployment]
image_pull_secrets:
- hub.javil.eu

View File

@ -1,9 +1,12 @@
version: '3' version: '3'
vars:
IMAGE_NAME: hub.javil.eu/budgeteer
tasks: tasks:
default: default:
cmds: cmds:
- task: build - task: build-prod
sqlc: sqlc:
desc: sqlc code generation desc: sqlc code generation
@ -59,12 +62,13 @@ tasks:
frontend: frontend:
desc: Build vue frontend desc: Build vue frontend
dir: web
sources: sources:
- web/src/**/* - web/src/**/*
generates: generates:
- web/dist/**/* - web/dist/**/*
cmds: cmds:
- cd web - yarn
- yarn build - yarn build
docker: docker:
@ -72,8 +76,18 @@ tasks:
deps: [build-prod] deps: [build-prod]
sources: sources:
- ./build/budgeteer{{exeExt}} - ./build/budgeteer{{exeExt}}
- ./build/Dockerfile
cmds: cmds:
- docker build -t budgeteer:latest -t hub.javil.eu/budgeteer:latest ./build - docker build -t {{.IMAGE_NAME}}:latest ./build
- docker push {{.IMAGE_NAME}}:latest
dev-docker:
desc: Build budgeeter:dev
sources:
- ./docker/Dockerfile
cmds:
- docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile
- docker push {{.IMAGE_NAME}}:dev
run: run:
desc: Start budgeteer desc: Start budgeteer

View File

@ -1,13 +1,16 @@
FROM alpine as godeps
RUN apk add go
RUN go install github.com/kyleconroy/sqlc/cmd/sqlc@latest
RUN go install github.com/go-task/task/v3/cmd/task@latest
FROM alpine FROM alpine
RUN apk add go RUN apk add go
RUN apk add nodejs yarn bash curl git git-perl tmux RUN apk add nodejs yarn bash curl git git-perl tmux
RUN bash -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin ADD docker/build.sh /
ADD build.sh / COPY --from=godeps /root/go/bin/task /root/go/bin/sqlc /usr/local/bin/
RUN addgroup -S dev && adduser -S dev -G dev
USER dev
RUN go install github.com/kyleconroy/sqlc/cmd/sqlc@latest
RUN go install github.com/go-task/task/v3/cmd/task@latest
RUN yarn global add @vue/cli RUN yarn global add @vue/cli
ENV PATH="/home/dev/go/bin:/home/dev/.yarn/bin/:${PATH}" ENV PATH="/root/.yarn/bin/:${PATH}"
WORKDIR /src WORKDIR /src
ADD web/package.json /src/web/
RUN yarn
CMD /build.sh CMD /build.sh

17
web/src/pages/Admin.vue Normal file
View File

@ -0,0 +1,17 @@
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
mounted() {
document.title = "Budgeteer - Admin";
},
})
</script>
<template>
<h1>Danger Zone</h1>
<div class="budget-item">
<button>Clear database</button>
<p>This removes all data and starts from scratch. Not undoable!</p>
</div>
</template>