From 47095ae6eccb75ef40a9c6756ab251a9d430f2f7 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:39:19 +0000 Subject: [PATCH 01/19] Add .woodpecker.yaml --- .woodpecker.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .woodpecker.yaml diff --git a/.woodpecker.yaml b/.woodpecker.yaml new file mode 100644 index 0000000..b15490b --- /dev/null +++ b/.woodpecker.yaml @@ -0,0 +1,32 @@ +--- +kind: pipeline +type: docker +name: budgeteer + +steps: +- name: Taskfile.dev + image: hub.javil.eu/budgeteer:dev + commands: + - task build + +- name: docker + image: plugins/docker + settings: + registry: hub.javil.eu + username: + from_secret: docker_user + password: + from_secret: docker_password + repo: hub.javil.eu/budgeteer + context: build + dockerfile: build/Dockerfile + tags: + - latest + when: + event: + exclude: + - pull_request + + +image_pull_secrets: +- hub.javil.eu \ No newline at end of file From 148fc18cd86290ed79391b43ef3a4ebeeb33baaa Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:41:07 +0000 Subject: [PATCH 02/19] Fix schema --- .woodpecker.yaml | 51 ++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/.woodpecker.yaml b/.woodpecker.yaml index b15490b..ab7a019 100644 --- a/.woodpecker.yaml +++ b/.woodpecker.yaml @@ -1,32 +1,27 @@ ---- -kind: pipeline -type: docker -name: budgeteer - -steps: -- name: Taskfile.dev - image: hub.javil.eu/budgeteer:dev - commands: - - task build - -- name: docker - image: plugins/docker - settings: - registry: hub.javil.eu - username: - from_secret: docker_user - password: - from_secret: docker_password - repo: hub.javil.eu/budgeteer - context: build - dockerfile: build/Dockerfile - tags: - - latest - when: - event: - exclude: - - pull_request +pipeline: + build: + name: Taskfile.dev + image: hub.javil.eu/budgeteer:dev + commands: + - task build + docker: + image: plugins/docker + settings: + registry: hub.javil.eu + username: + from_secret: docker_user + password: + from_secret: docker_password + repo: hub.javil.eu/budgeteer + context: build + dockerfile: build/Dockerfile + tags: + - latest + when: + event: + exclude: + - pull_request image_pull_secrets: - hub.javil.eu \ No newline at end of file From 7cf106eb85612f2d4c193f346b21cb8b57bcba35 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:41:35 +0000 Subject: [PATCH 03/19] Rename --- .woodpecker.yaml => .woodpecker.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .woodpecker.yaml => .woodpecker.yml (100%) diff --git a/.woodpecker.yaml b/.woodpecker.yml similarity index 100% rename from .woodpecker.yaml rename to .woodpecker.yml From 95d8e4fcccb4e94ca6d3d9ebe8f407a17aec6983 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:49:06 +0000 Subject: [PATCH 04/19] Rewrite event filter --- .woodpecker.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index ab7a019..5c6cf93 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -19,9 +19,7 @@ pipeline: tags: - latest when: - event: - exclude: - - pull_request + event: [push, tag, deployment] image_pull_secrets: -- hub.javil.eu \ No newline at end of file +- hub.javil.eu From 2e719b590eda830b17a7b5326332747373f4a378 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:52:00 +0000 Subject: [PATCH 05/19] Add admin page --- web/src/pages/Admin.vue | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 web/src/pages/Admin.vue 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 @@ + + + \ No newline at end of file From 7874ef69a274c6a6d0c845dc3f891b00095c7064 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:57:26 +0000 Subject: [PATCH 06/19] Fix Taskfile --- Taskfile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index 350bb5f..ded3bd9 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -3,7 +3,7 @@ version: '3' tasks: default: cmds: - - task: build + - task: build-prod sqlc: desc: sqlc code generation @@ -59,12 +59,12 @@ tasks: frontend: desc: Build vue frontend + dir: web sources: - web/src/**/* generates: - web/dist/**/* cmds: - - cd web - yarn build docker: From bf20914c1ca0ebf409b7659f07222c7571ab5aa5 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:58:31 +0000 Subject: [PATCH 07/19] Use default build name --- .drone.yml | 2 +- .woodpecker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index b15490b..f55c36f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,7 +7,7 @@ steps: - name: Taskfile.dev image: hub.javil.eu/budgeteer:dev commands: - - task build + - task - name: docker image: plugins/docker diff --git a/.woodpecker.yml b/.woodpecker.yml index 5c6cf93..020e812 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -3,7 +3,7 @@ pipeline: name: Taskfile.dev image: hub.javil.eu/budgeteer:dev commands: - - task build + - task docker: image: plugins/docker From 6a77c71df4431f15aaff2874f4cd02005fa2fc16 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 22:59:38 +0000 Subject: [PATCH 08/19] Always pull dev image --- .drone.yml | 1 + .woodpecker.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.drone.yml b/.drone.yml index f55c36f..7f6e6f0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,6 +6,7 @@ name: budgeteer steps: - name: Taskfile.dev image: hub.javil.eu/budgeteer:dev + pull: true commands: - task diff --git a/.woodpecker.yml b/.woodpecker.yml index 020e812..5bf2e36 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -2,6 +2,7 @@ pipeline: build: name: Taskfile.dev image: hub.javil.eu/budgeteer:dev + pull: true commands: - task From 941b642f399121b6eb8058a892c074ea222a136e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:16:57 +0000 Subject: [PATCH 09/19] Build docker within task --- .drone.yml | 36 ++++++++++++++++++------------------ Taskfile.yml | 11 ++++++++++- docker/Dockerfile | 1 - 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/.drone.yml b/.drone.yml index 7f6e6f0..ea80847 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,25 +8,25 @@ steps: image: hub.javil.eu/budgeteer:dev pull: true commands: - - task + - task docker -- name: docker - image: plugins/docker - settings: - registry: hub.javil.eu - username: - from_secret: docker_user - password: - from_secret: docker_password - repo: hub.javil.eu/budgeteer - context: build - dockerfile: build/Dockerfile - tags: - - latest - when: - event: - exclude: - - pull_request +#- name: docker + #image: plugins/docker + #settings: + #registry: hub.javil.eu + #username: + #from_secret: docker_user + #password: + #from_secret: docker_password + #repo: hub.javil.eu/budgeteer + #context: build + #dockerfile: build/Dockerfile + #tags: + #- latest + #when: + #event: + #exclude: + #- pull_request image_pull_secrets: diff --git a/Taskfile.yml b/Taskfile.yml index ded3bd9..2b2b548 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -73,7 +73,16 @@ tasks: sources: - ./build/budgeteer{{exeExt}} cmds: - - docker build -t budgeteer:latest -t hub.javil.eu/budgeteer:latest ./build + - docker build -t hub.javil.eu/budgeteer:latest ./build + - docker push hub.javil.eu/budgeteer:latest + + dev-docker: + desc: Build budgeeter:dev + sources: + - ./build/budgeteer{{exeExt}} + cmds: + - docker build -t hub.javil.eu/budgeteer:dev ./docker + - docker push hub.javil.eu/budgeteer:dev run: desc: Start budgeteer diff --git a/docker/Dockerfile b/docker/Dockerfile index 6430a9a..3ce133b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,6 @@ 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 From 3308b5852414ce5aa63f8c75f2991b73b82b420b Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:30:53 +0000 Subject: [PATCH 10/19] Fix sources in Taskfile --- Taskfile.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Taskfile.yml b/Taskfile.yml index 2b2b548..e8c4c98 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -72,6 +72,7 @@ tasks: deps: [build-prod] sources: - ./build/budgeteer{{exeExt}} + - ./build/Dockerfile cmds: - docker build -t hub.javil.eu/budgeteer:latest ./build - docker push hub.javil.eu/budgeteer:latest @@ -79,7 +80,7 @@ tasks: dev-docker: desc: Build budgeeter:dev sources: - - ./build/budgeteer{{exeExt}} + - ./docker/Dockerfile cmds: - docker build -t hub.javil.eu/budgeteer:dev ./docker - docker push hub.javil.eu/budgeteer:dev From 0a21c59eff2de61ba59976b2f165f2c0cbe2a25e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:33:47 +0000 Subject: [PATCH 11/19] Fetch deps before build --- Taskfile.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Taskfile.yml b/Taskfile.yml index e8c4c98..c94649f 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -65,6 +65,7 @@ tasks: generates: - web/dist/**/* cmds: + - yarn - yarn build docker: From bb83563bc60602f30e43a74618aa57dfc3922ae3 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:35:15 +0000 Subject: [PATCH 12/19] Use docker build-target --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 5bf2e36..f81bf4a 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -4,7 +4,7 @@ pipeline: image: hub.javil.eu/budgeteer:dev pull: true commands: - - task + - task docker docker: image: plugins/docker From 4e2a783b2e8748cb7af68482442ea6cb1e59864e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:40:46 +0000 Subject: [PATCH 13/19] Extract variable --- Taskfile.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index c94649f..b8feed3 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,5 +1,8 @@ version: '3' +vars: + IMAGE_NAME: hub.javil.eu/budgeteer + tasks: default: cmds: @@ -75,16 +78,16 @@ tasks: - ./build/budgeteer{{exeExt}} - ./build/Dockerfile cmds: - - docker build -t hub.javil.eu/budgeteer:latest ./build - - docker push hub.javil.eu/budgeteer:latest + - 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 hub.javil.eu/budgeteer:dev ./docker - - docker push hub.javil.eu/budgeteer:dev + - docker build -t {{.IMAGE_NAME}}:dev ./docker + - docker push {{.IMAGE_NAME}}:dev run: desc: Start budgeteer From 3db5e1e72cad4bca8ade335d84679d401dc4e29e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:42:03 +0000 Subject: [PATCH 14/19] Reenable docker push --- .drone.yml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.drone.yml b/.drone.yml index ea80847..fabf98a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -10,23 +10,23 @@ steps: commands: - task docker -#- name: docker - #image: plugins/docker - #settings: - #registry: hub.javil.eu - #username: - #from_secret: docker_user - #password: - #from_secret: docker_password - #repo: hub.javil.eu/budgeteer - #context: build - #dockerfile: build/Dockerfile - #tags: - #- latest - #when: - #event: - #exclude: - #- pull_request +- name: docker + image: plugins/docker + settings: + registry: hub.javil.eu + username: + from_secret: docker_user + password: + from_secret: docker_password + repo: hub.javil.eu/budgeteer + context: build + dockerfile: build/Dockerfile + tags: + - latest + when: + event: + exclude: + - pull_request image_pull_secrets: From 11ac8758dafa09dd620e43a0802cf660b8ccc98a Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:43:55 +0000 Subject: [PATCH 15/19] Disable docker from taskfile --- .drone.yml | 2 +- .woodpecker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index fabf98a..7f6e6f0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,7 +8,7 @@ steps: image: hub.javil.eu/budgeteer:dev pull: true commands: - - task docker + - task - name: docker image: plugins/docker diff --git a/.woodpecker.yml b/.woodpecker.yml index f81bf4a..5bf2e36 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -4,7 +4,7 @@ pipeline: image: hub.javil.eu/budgeteer:dev pull: true commands: - - task docker + - task docker: image: plugins/docker From e506510fde7ca1eb10b7f706218d61336be33760 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:49:43 +0000 Subject: [PATCH 16/19] Remove user and add go deps from builder image --- docker/Dockerfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3ce133b..e470798 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,14 @@ +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 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 +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 CMD /build.sh From 15bb73de30290729e086f5038ab899660227e06c Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 11 Feb 2022 23:54:26 +0000 Subject: [PATCH 17/19] Add secrects --- .woodpecker.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 5bf2e36..03a5388 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -8,12 +8,9 @@ pipeline: docker: image: plugins/docker + secrets: [ docker_username, docker_password ] settings: registry: hub.javil.eu - username: - from_secret: docker_user - password: - from_secret: docker_password repo: hub.javil.eu/budgeteer context: build dockerfile: build/Dockerfile From fa8a2854f2d8761078a5bed0a9f1dd49847eb926 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sat, 12 Feb 2022 00:00:19 +0000 Subject: [PATCH 18/19] Add node packages to image --- .dockerignore | 3 ++- docker/Dockerfile | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) 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/docker/Dockerfile b/docker/Dockerfile index e470798..d6cbb41 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,4 +11,6 @@ COPY --from=godeps /root/go/bin/task /root/go/bin/sqlc /usr/local/bin/ RUN yarn global add @vue/cli ENV PATH="/root/.yarn/bin/:${PATH}" WORKDIR /src +ADD web/package.json /src/web/ +RUN yarn CMD /build.sh From c074dfe86538ce01e6d1bb0bca6a4a6b7a95ca8b Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sat, 12 Feb 2022 00:00:33 +0000 Subject: [PATCH 19/19] Fix Taskfile --- Taskfile.yml | 2 +- docker/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index b8feed3..3306503 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -86,7 +86,7 @@ tasks: sources: - ./docker/Dockerfile cmds: - - docker build -t {{.IMAGE_NAME}}:dev ./docker + - docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile - docker push {{.IMAGE_NAME}}:dev run: diff --git a/docker/Dockerfile b/docker/Dockerfile index d6cbb41..83ef4e2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,7 +6,7 @@ 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 -ADD build.sh / +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="/root/.yarn/bin/:${PATH}"