diff --git a/.dockerignore b/.dockerignore index 6a06cae..5d57677 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,4 +7,5 @@ config.example.json .gitignore .vscode/ budgeteer -budgeteer.exe \ No newline at end of file +budgeteer.exe +**/node_modules/ diff --git a/.drone.yml b/.drone.yml index b15490b..7f6e6f0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,8 +6,9 @@ name: budgeteer steps: - name: Taskfile.dev image: hub.javil.eu/budgeteer:dev + pull: true commands: - - task build + - task - name: docker image: plugins/docker diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..03a5388 --- /dev/null +++ b/.woodpecker.yml @@ -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 diff --git a/Taskfile.yml b/Taskfile.yml index 350bb5f..3306503 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,9 +1,12 @@ version: '3' +vars: + IMAGE_NAME: hub.javil.eu/budgeteer + tasks: default: cmds: - - task: build + - task: build-prod sqlc: desc: sqlc code generation @@ -59,12 +62,13 @@ tasks: frontend: desc: Build vue frontend + dir: web sources: - web/src/**/* generates: - web/dist/**/* cmds: - - cd web + - yarn - yarn build docker: @@ -72,8 +76,18 @@ tasks: deps: [build-prod] sources: - ./build/budgeteer{{exeExt}} + - ./build/Dockerfile 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: desc: Start budgeteer diff --git a/docker/Dockerfile b/docker/Dockerfile index 6430a9a..83ef4e2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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 RUN apk add go 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 build.sh / -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 +ADD docker/build.sh / +COPY --from=godeps /root/go/bin/task /root/go/bin/sqlc /usr/local/bin/ 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 +ADD web/package.json /src/web/ +RUN yarn CMD /build.sh diff --git a/web/src/pages/Admin.vue b/web/src/pages/Admin.vue new file mode 100644 index 0000000..f31b6dd --- /dev/null +++ b/web/src/pages/Admin.vue @@ -0,0 +1,17 @@ + + + + Danger Zone + + Clear database + This removes all data and starts from scratch. Not undoable! + + \ No newline at end of file
This removes all data and starts from scratch. Not undoable!