From c414edf6818285da49c9bbd7aae9b48da1299a52 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 24 Jul 2021 01:00:32 +0200 Subject: [PATCH 01/73] feat: improve release workflow --- .dockerignore | 2 +- .drone.yml | 157 ------------------ .gitignore | 1 + .goreleaser.yml | 92 ++++++++++ .woodpecker/.release.yml | 15 ++ .woodpecker/.test.yml | 54 ++++++ Dockerfile.agent | 10 -- Dockerfile.agent.alpine | 12 -- docker/Dockerfile.agent | 8 + docker/Dockerfile.agent.alpine | 12 ++ docker/Dockerfile.cli | 8 + docker/Dockerfile.cli.alpine | 12 ++ Dockerfile => docker/Dockerfile.server | 6 +- .../Dockerfile.server.alpine | 4 +- 14 files changed, 207 insertions(+), 186 deletions(-) delete mode 100644 .drone.yml create mode 100644 .goreleaser.yml create mode 100644 .woodpecker/.release.yml create mode 100644 .woodpecker/.test.yml delete mode 100644 Dockerfile.agent delete mode 100644 Dockerfile.agent.alpine create mode 100644 docker/Dockerfile.agent create mode 100644 docker/Dockerfile.agent.alpine create mode 100644 docker/Dockerfile.cli create mode 100644 docker/Dockerfile.cli.alpine rename Dockerfile => docker/Dockerfile.server (59%) rename Dockerfile.alpine => docker/Dockerfile.server.alpine (76%) diff --git a/.dockerignore b/.dockerignore index 8c5bfe506a..d57fc44282 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,4 @@ * -!release/* +!dist/* .env diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index 06864cc2ce..0000000000 --- a/.drone.yml +++ /dev/null @@ -1,157 +0,0 @@ -clone: - git: - image: plugins/git:next - -pipeline: - test: - image: golang:1.16 - group: test - commands: - - make deps - - make test - - make vet - - make formatcheck - - test-frontend: - image: node:10.17.0-stretch - group: test - commands: - - (cd web/; yarn install) - - (cd web/; yarn run lesshint) - - (cd web/; yarn run lint --quiet) - - make test-frontend - - test-postgres: - image: golang:1.16 - group: db-test - environment: - - DATABASE_DRIVER=postgres - - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - - test-mysql: - image: golang:1.16 - group: db-test - environment: - - DATABASE_DRIVER=mysql - - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - - build-frontend: - image: node:10.17.0-stretch - commands: - - make build-frontend - - build: - image: golang:1.16 - commands: - - go get github.com/woodpecker-ci/togo - - (cd web/; go generate ./...) - - make release - when: - event: [push, tag] - - # publish-server-alpine: - # image: plugins/docker - # repo: woodpeckerci/woodpecker-server - # dockerfile: Dockerfile.alpine - # secrets: [ docker_username, docker_password ] - # tag: [ alpine ] - # when: - # branch: master - # event: push - - build-cli: - image: golang:1.16 - commands: make release-cli - - publish-server: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - secrets: [docker_username, docker_password] - tag: [latest] - when: - branch: master - event: push - - publish-agent: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: Dockerfile.agent - secrets: [docker_username, docker_password] - tag: [latest] - when: - branch: master - event: push - - # publish-agent-alpine: - # image: plugins/docker - # repo: woodpeckerci/woodpecker-agent - # dockerfile: Dockerfile.agent.alpine - # secrets: [ docker_username, docker_password ] - # tag: [ alpine ] - # when: - # branch: master - # event: push - - # release-server-alpine: - # image: plugins/docker - # repo: woodpeckerci/woodpecker-server - # dockerfile: Dockerfile.alpine - # secrets: [ docker_username, docker_password ] - # tag: "${DRONE_TAG}-alpine" - # when: - # event: tag - # - # release-agent-alpine: - # image: plugins/docker - # repo: woodpeckerci/woodpecker-agent - # dockerfile: Dockerfile.agent.alpine - # secrets: [ docker_username, docker_password ] - # tag: "${DRONE_TAG}-alpine" - # when: - # event: tag - - release-server: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - secrets: [docker_username, docker_password] - tag: ${DRONE_TAG} - when: - event: tag - - release-agent: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: Dockerfile.agent - secrets: [docker_username, docker_password] - tag: ${DRONE_TAG} - when: - event: tag - - release-cli: - image: plugins/github-release - files: - - cli/release/woodpecker_*.tar.gz - - cli/release/woodpecker_checksums.txt - secrets: - - source: github_token - target: github_release_api_key - when: - event: tag - -services: - postgres: - image: postgres:9.6 - ports: ["5432"] - environment: - - POSTGRES_USER=postgres - - POSTGRES_HOST_AUTH_METHOD=trust - mysql: - image: mysql:5.6.27 - ports: ["3306"] - environment: - - MYSQL_DATABASE=test - - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/.gitignore b/.gitignore index d32958fdab..c61eab4871 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ server/swagger/files/*.json server/swagger/swagger_gen.go docs/venv +dist/ diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000000..a2e5d1024d --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,92 @@ +before: + hooks: + - go mod tidy + - go get github.com/woodpecker-ci/togo +# - (cd web/; go generate ./...) +builds: + - id: server + main: ./cmd/drone-server + binary: woodpecker-server + env: + - CGO_ENABLED=0 + goos: + - linux + # - windows + # - darwin + - id: agent + main: ./cmd/drone-agent + binary: woodpecker-agent + env: + - CGO_ENABLED=0 + goos: + - linux + # - windows + # - darwin + - id: cli + main: ./cmd/drone-agent + binary: woodpecker-cli + env: + - CGO_ENABLED=0 + goos: + - linux + # - windows + # - darwin +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: "{{ .Tag }}-next" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' +nfpms: + - builds: + - server + - agent + - cli + homepage: https://github.com/woodpecker-ci/woodpecker + license: Apache 2.0 + formats: + - apk + - deb + - rpm + meta: true +dockers: + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.server + image_templates: + - "woodpeckerci/woodpecker-server:{{ .Tag }}" + - "woodpeckerci/woodpecker-server:latest" + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.server.alpine + image_templates: + - "woodpeckerci/woodpecker-server:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-server:latest-alpine" + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.agent + image_templates: + - "woodpeckerci/woodpecker-agent:{{ .Tag }}" + - "woodpeckerci/woodpecker-agent:latest" + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.agent.alpine + image_templates: + - "woodpeckerci/woodpecker-agent:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-agent:latest-alpine" + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.cli + image_templates: + - "woodpeckerci/woodpecker-cli:{{ .Tag }}" + - "woodpeckerci/woodpecker-cli:latest" + - goos: linux + goarch: amd64 + dockerfile: docker/Dockerfile.cli.alpine + image_templates: + - "woodpeckerci/woodpecker-cli:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-cli:latest-alpine" diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml new file mode 100644 index 0000000000..ef901df0ea --- /dev/null +++ b/.woodpecker/.release.yml @@ -0,0 +1,15 @@ +clone: + git: + image: plugins/git:next + +pipeline: + release: + image: golang:1.10 + secrets: [github_token, docker_username, docker_password] + commands: + curl -sL https://git.io/goreleaser | bash + when: + event: tag + +depends_on: + - test diff --git a/.woodpecker/.test.yml b/.woodpecker/.test.yml new file mode 100644 index 0000000000..336f3dbc34 --- /dev/null +++ b/.woodpecker/.test.yml @@ -0,0 +1,54 @@ +clone: + git: + image: plugins/git:next + +pipeline: + test: + image: golang:1.16 + group: test + commands: + - make deps + - make test + - make vet + - make formatcheck + + test-frontend: + image: node:10.17.0-stretch + group: test + commands: + - (cd web/; yarn install) + - (cd web/; yarn run lesshint) + - (cd web/; yarn run lint --quiet) + - make test-frontend + + test-postgres: + image: golang:1.16 + group: db-test + environment: + - DATABASE_DRIVER=postgres + - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + + test-mysql: + image: golang:1.16 + group: db-test + environment: + - DATABASE_DRIVER=mysql + - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + +services: + postgres: + image: postgres:9.6 + ports: ["5432"] + environment: + - POSTGRES_USER=postgres + - POSTGRES_HOST_AUTH_METHOD=trust + mysql: + image: mysql:5.6.27 + ports: ["3306"] + environment: + - MYSQL_DATABASE=test + - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/Dockerfile.agent b/Dockerfile.agent deleted file mode 100644 index 95a4e669cf..0000000000 --- a/Dockerfile.agent +++ /dev/null @@ -1,10 +0,0 @@ -# docker build --rm -f Dockerfile.agent -t woodpeckerci/woodpecker-agent . - -FROM drone/ca-certs -ENV GODEBUG=netdns=go -ADD release/drone-agent /bin/ - -EXPOSE 3000 -HEALTHCHECK CMD ["/bin/drone-agent", "ping"] - -ENTRYPOINT ["/bin/drone-agent"] diff --git a/Dockerfile.agent.alpine b/Dockerfile.agent.alpine deleted file mode 100644 index 10c7252bd9..0000000000 --- a/Dockerfile.agent.alpine +++ /dev/null @@ -1,12 +0,0 @@ -FROM alpine:3.9.4 - -RUN apk add -U --no-cache ca-certificates - -ENV GODEBUG=netdns=go -ADD release/drone-agent /bin/ - -EXPOSE 3000 -HEALTHCHECK CMD ["/bin/drone-agent", "ping"] - -ENTRYPOINT ["/bin/drone-agent"] - diff --git a/docker/Dockerfile.agent b/docker/Dockerfile.agent new file mode 100644 index 0000000000..7a35a3e225 --- /dev/null +++ b/docker/Dockerfile.agent @@ -0,0 +1,8 @@ +FROM drone/ca-certs +ENV GODEBUG=netdns=go +ADD ./woodpecker-agent /bin/ + +EXPOSE 3000 +HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] + +ENTRYPOINT ["/bin/woodpecker-agent"] diff --git a/docker/Dockerfile.agent.alpine b/docker/Dockerfile.agent.alpine new file mode 100644 index 0000000000..6e17ed9784 --- /dev/null +++ b/docker/Dockerfile.agent.alpine @@ -0,0 +1,12 @@ +FROM alpine:3.9.4 + +RUN apk add -U --no-cache ca-certificates + +ENV GODEBUG=netdns=go +ADD ./woodpecker-agent /bin/ + +EXPOSE 3000 +HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] + +ENTRYPOINT ["/bin/woodpecker-agent"] + diff --git a/docker/Dockerfile.cli b/docker/Dockerfile.cli new file mode 100644 index 0000000000..32c8e4bc63 --- /dev/null +++ b/docker/Dockerfile.cli @@ -0,0 +1,8 @@ +FROM drone/ca-certs +ENV GODEBUG=netdns=go +ADD ./woodpecker-cli /bin/ + +EXPOSE 3000 +HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"] + +ENTRYPOINT ["/bin/woodpecker-cli"] diff --git a/docker/Dockerfile.cli.alpine b/docker/Dockerfile.cli.alpine new file mode 100644 index 0000000000..9f4be5481e --- /dev/null +++ b/docker/Dockerfile.cli.alpine @@ -0,0 +1,12 @@ +FROM alpine:3.9.4 + +RUN apk add -U --no-cache ca-certificates + +ENV GODEBUG=netdns=go +ADD ./woodpecker-cli /bin/ + +EXPOSE 3000 +HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"] + +ENTRYPOINT ["/bin/woodpecker-cli"] + diff --git a/Dockerfile b/docker/Dockerfile.server similarity index 59% rename from Dockerfile rename to docker/Dockerfile.server index d8dbadc6e4..de572cd7a2 100644 --- a/Dockerfile +++ b/docker/Dockerfile.server @@ -1,5 +1,3 @@ -# docker build --rm -t woodpeckerci/woodpecker-server . - FROM drone/ca-certs EXPOSE 8000 9000 80 443 @@ -8,6 +6,6 @@ ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite ENV GODEBUG=netdns=go ENV XDG_CACHE_HOME /var/lib/drone -ADD release/drone-server /bin/ +ADD ./woodpecker-server /bin/ -ENTRYPOINT ["/bin/drone-server"] +ENTRYPOINT ["/bin/woodpecker-server"] diff --git a/Dockerfile.alpine b/docker/Dockerfile.server.alpine similarity index 76% rename from Dockerfile.alpine rename to docker/Dockerfile.server.alpine index a87da8f16c..03261f826f 100644 --- a/Dockerfile.alpine +++ b/docker/Dockerfile.server.alpine @@ -8,6 +8,6 @@ ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite ENV GODEBUG=netdns=go ENV XDG_CACHE_HOME /var/lib/drone -ADD release/drone-server /bin/ +ADD ./woodpecker-server /bin/ -ENTRYPOINT ["/bin/drone-server"] +ENTRYPOINT ["/bin/woodpecker-server"] From c6ad425c52ce34bffbe93f4a6f02c9f4c174870a Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 24 Jul 2021 12:52:02 +0200 Subject: [PATCH 02/73] feat: use golang instead of drone/ca-certs image --- docker/Dockerfile.agent | 9 ++++++--- docker/Dockerfile.cli | 9 ++++++--- docker/Dockerfile.server | 6 +++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile.agent b/docker/Dockerfile.agent index 7a35a3e225..53766d53d8 100644 --- a/docker/Dockerfile.agent +++ b/docker/Dockerfile.agent @@ -1,8 +1,11 @@ -FROM drone/ca-certs -ENV GODEBUG=netdns=go -ADD ./woodpecker-agent /bin/ +FROM golang:1.16 +FROM scratch +ENV GODEBUG=netdns=go EXPOSE 3000 HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] +COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt + +ADD ./woodpecker-agent /bin/ ENTRYPOINT ["/bin/woodpecker-agent"] diff --git a/docker/Dockerfile.cli b/docker/Dockerfile.cli index 32c8e4bc63..ec68253d0c 100644 --- a/docker/Dockerfile.cli +++ b/docker/Dockerfile.cli @@ -1,8 +1,11 @@ -FROM drone/ca-certs -ENV GODEBUG=netdns=go -ADD ./woodpecker-cli /bin/ +FROM golang:1.16 +FROM scratch +ENV GODEBUG=netdns=go EXPOSE 3000 HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"] +COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt + +ADD ./woodpecker-cli /bin/ ENTRYPOINT ["/bin/woodpecker-cli"] diff --git a/docker/Dockerfile.server b/docker/Dockerfile.server index de572cd7a2..b7d8ccec7f 100644 --- a/docker/Dockerfile.server +++ b/docker/Dockerfile.server @@ -1,4 +1,6 @@ -FROM drone/ca-certs +FROM golang:1.16 + +FROM scratch EXPOSE 8000 9000 80 443 ENV DATABASE_DRIVER=sqlite3 @@ -6,6 +8,8 @@ ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite ENV GODEBUG=netdns=go ENV XDG_CACHE_HOME /var/lib/drone +COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt + ADD ./woodpecker-server /bin/ ENTRYPOINT ["/bin/woodpecker-server"] From 42ecc0a0558b832c29a40f25009728a038a71e23 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 24 Jul 2021 12:52:41 +0200 Subject: [PATCH 03/73] feat: improve and correct release config --- .goreleaser.yml | 81 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 5 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index a2e5d1024d..a65f04c0b4 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -2,7 +2,7 @@ before: hooks: - go mod tidy - go get github.com/woodpecker-ci/togo -# - (cd web/; go generate ./...) + - sh -c "cd web/; go generate ./..." builds: - id: server main: ./cmd/drone-server @@ -13,15 +13,23 @@ builds: - linux # - windows # - darwin + goarch: + - amd64 + # - arm + # - arm64 - id: agent main: ./cmd/drone-agent binary: woodpecker-agent env: - - CGO_ENABLED=0 + - CGO_ENABLED=1 goos: - linux # - windows # - darwin + goarch: + - amd64 + # - arm + # - arm64 - id: cli main: ./cmd/drone-agent binary: woodpecker-cli @@ -29,8 +37,12 @@ builds: - CGO_ENABLED=0 goos: - linux - # - windows - # - darwin + - windows + - darwin + goarch: + - amd64 + # - arm + # - arm64 checksum: name_template: 'checksums.txt' snapshot: @@ -42,10 +54,35 @@ changelog: - '^docs:' - '^test:' nfpms: - - builds: + - id: server + package_name: server + builds: - server + file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" + homepage: https://github.com/woodpecker-ci/woodpecker + license: Apache 2.0 + formats: + - apk + - deb + - rpm + meta: true + - id: agent + package_name: agent + builds: - agent + file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" + homepage: https://github.com/woodpecker-ci/woodpecker + license: Apache 2.0 + formats: + - apk + - deb + - rpm + meta: true + - id: cli + package_name: cli + builds: - cli + file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" homepage: https://github.com/woodpecker-ci/woodpecker license: Apache 2.0 formats: @@ -90,3 +127,37 @@ dockers: image_templates: - "woodpeckerci/woodpecker-cli:{{ .Tag }}-alpine" - "woodpeckerci/woodpecker-cli:latest-alpine" +archives: + - id: server + builds: + - server + name_template: "{{ .ProjectName }}-server_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" + format_overrides: + - goos: windows + format: zip + files: + - LICENSE + - README.md + - CHANGELOG.md + - id: agent + builds: + - agent + name_template: "{{ .ProjectName }}-agent_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" + format_overrides: + - goos: windows + format: zip + files: + - LICENSE + - README.md + - CHANGELOG.md + - id: cli + builds: + - cli + name_template: "{{ .ProjectName }}-cli_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" + format_overrides: + - goos: windows + format: zip + files: + - LICENSE + - README.md + - CHANGELOG.md From c34ace4d286810bf86182a74be1b3c8771d5d5c3 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 24 Jul 2021 13:17:54 +0200 Subject: [PATCH 04/73] fix: release correct cli --- .goreleaser.yml | 16 ++++++++++++-- cli/.drone.yml | 57 ------------------------------------------------- 2 files changed, 14 insertions(+), 59 deletions(-) delete mode 100644 cli/.drone.yml diff --git a/.goreleaser.yml b/.goreleaser.yml index a65f04c0b4..2a3fcccb24 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -17,11 +17,15 @@ builds: - amd64 # - arm # - arm64 + ldflags: + - -s -w + - -X github.com/woodpecker-ci/woodpecker/version.Version={{.Version}} + - -extldflags "-static" - id: agent main: ./cmd/drone-agent binary: woodpecker-agent env: - - CGO_ENABLED=1 + - CGO_ENABLED=0 goos: - linux # - windows @@ -30,8 +34,12 @@ builds: - amd64 # - arm # - arm64 + ldflags: + - -s -w + - -X github.com/woodpecker-ci/woodpecker/version.Version={{.Version}} + - -extldflags "-static" - id: cli - main: ./cmd/drone-agent + dir: ./cli/drone binary: woodpecker-cli env: - CGO_ENABLED=0 @@ -43,6 +51,10 @@ builds: - amd64 # - arm # - arm64 + ldflags: + - -s -w + - -X main.version={{.Version}} + - -extldflags "-static" checksum: name_template: 'checksums.txt' snapshot: diff --git a/cli/.drone.yml b/cli/.drone.yml deleted file mode 100644 index 4bda077bc4..0000000000 --- a/cli/.drone.yml +++ /dev/null @@ -1,57 +0,0 @@ -workspace: - base: /go - path: src/github.com/drone/drone-cli - -pipeline: - build: - image: golang:1.9 - commands: sh .drone.sh - - publish_latest: - image: plugins/docker - repo: drone/cli - secrets: [docker_username, docker_password] - auto_tag: true - when: - event: [push, tag] - - publish_alpine: - image: plugins/docker - repo: drone/cli - secrets: [docker_username, docker_password] - auto_tag: true - auto_tag_suffix: alpine - dockerfile: Dockerfile.alpine - when: - event: [push, tag] - - publish_linux_arm: - image: plugins/docker - repo: drone/cli - secrets: [docker_username, docker_password] - auto_tag: true - auto_tag_suffix: linux-arm - dockerfile: Dockerfile.linux.arm - when: - event: [push, tag] - - publish_linux_arm64: - image: plugins/docker - repo: drone/cli - secrets: [docker_username, docker_password] - auto_tag: true - auto_tag_suffix: linux-arm64 - dockerfile: Dockerfile.linux.arm64 - when: - event: [push, tag] - - release: - image: plugins/github-release - files: - - release/woodpecker_*.tar.gz - - release/woodpecker_checksums.txt - secrets: - - source: github_token - target: github_release_api_key - when: - event: tag From ee8fe2f74b1c6afcff8236b000ed93f80c4d695d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 24 Jul 2021 13:21:54 +0200 Subject: [PATCH 05/73] fix: enable cgo for woodpecker-server --- .goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 2a3fcccb24..7707798e78 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -8,7 +8,7 @@ builds: main: ./cmd/drone-server binary: woodpecker-server env: - - CGO_ENABLED=0 + - CGO_ENABLED=1 goos: - linux # - windows From 44feaae01d6cc591cb9a0915a01274d02a269bcc Mon Sep 17 00:00:00 2001 From: Anbraten Date: Sun, 1 Aug 2021 08:19:02 +0200 Subject: [PATCH 06/73] Update .woodpecker/.release.yml Co-authored-by: 6543 <6543@obermui.de> --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index ef901df0ea..ca27dbc777 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -4,7 +4,7 @@ clone: pipeline: release: - image: golang:1.10 + image: golang:1.16 secrets: [github_token, docker_username, docker_password] commands: curl -sL https://git.io/goreleaser | bash From 67762e2302e3b19570c7b1363c1956f7b6951c2f Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sun, 1 Aug 2021 09:53:07 +0200 Subject: [PATCH 07/73] reactor: use tagged goreleaser image --- .woodpecker/.release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index ca27dbc777..979df96e96 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -4,10 +4,10 @@ clone: pipeline: release: - image: golang:1.16 + image: ghcr.io/goreleaser/goreleaser:v0.174.1 secrets: [github_token, docker_username, docker_password] commands: - curl -sL https://git.io/goreleaser | bash + - release when: event: tag From 7754133832492e3c1132fb686791e2688697ca88 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 19 Aug 2021 13:09:07 +0200 Subject: [PATCH 08/73] refactor: bump alpine, add some docs --- docker/Dockerfile.agent | 3 +++ docker/Dockerfile.agent.alpine | 2 +- docker/Dockerfile.cli | 3 +++ docker/Dockerfile.cli.alpine | 2 +- docker/Dockerfile.server | 2 ++ docker/Dockerfile.server.alpine | 2 +- 6 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.agent b/docker/Dockerfile.agent index 53766d53d8..82c886ad92 100644 --- a/docker/Dockerfile.agent +++ b/docker/Dockerfile.agent @@ -1,9 +1,12 @@ +# use golang image to copy ssl certs later FROM golang:1.16 FROM scratch ENV GODEBUG=netdns=go EXPOSE 3000 HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] + +# copy certs from golang:1.16 image COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt ADD ./woodpecker-agent /bin/ diff --git a/docker/Dockerfile.agent.alpine b/docker/Dockerfile.agent.alpine index 6e17ed9784..fb2f7ef232 100644 --- a/docker/Dockerfile.agent.alpine +++ b/docker/Dockerfile.agent.alpine @@ -1,4 +1,4 @@ -FROM alpine:3.9.4 +FROM alpine:3.14.1 RUN apk add -U --no-cache ca-certificates diff --git a/docker/Dockerfile.cli b/docker/Dockerfile.cli index ec68253d0c..99809c9d86 100644 --- a/docker/Dockerfile.cli +++ b/docker/Dockerfile.cli @@ -1,9 +1,12 @@ +# use golang image to copy ssl certs later FROM golang:1.16 FROM scratch ENV GODEBUG=netdns=go EXPOSE 3000 HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"] + +# copy certs from golang:1.16 image COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt ADD ./woodpecker-cli /bin/ diff --git a/docker/Dockerfile.cli.alpine b/docker/Dockerfile.cli.alpine index 9f4be5481e..50289f3148 100644 --- a/docker/Dockerfile.cli.alpine +++ b/docker/Dockerfile.cli.alpine @@ -1,4 +1,4 @@ -FROM alpine:3.9.4 +FROM alpine:3.14.1 RUN apk add -U --no-cache ca-certificates diff --git a/docker/Dockerfile.server b/docker/Dockerfile.server index b7d8ccec7f..592a9de1c6 100644 --- a/docker/Dockerfile.server +++ b/docker/Dockerfile.server @@ -1,3 +1,4 @@ +# use golang image to copy ssl certs later FROM golang:1.16 FROM scratch @@ -8,6 +9,7 @@ ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite ENV GODEBUG=netdns=go ENV XDG_CACHE_HOME /var/lib/drone +# copy certs from golang:1.16 image COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt ADD ./woodpecker-server /bin/ diff --git a/docker/Dockerfile.server.alpine b/docker/Dockerfile.server.alpine index 03261f826f..fa7f80df35 100644 --- a/docker/Dockerfile.server.alpine +++ b/docker/Dockerfile.server.alpine @@ -1,4 +1,4 @@ -FROM alpine:3.9.4 +FROM alpine:3.14.1 EXPOSE 8000 9000 80 443 RUN apk add -U --no-cache ca-certificates From 898e0d1925a6adf87aca408f0e676a6eacad9a20 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 19 Aug 2021 20:14:04 +0200 Subject: [PATCH 09/73] update makefile --- Makefile | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index b86d3d07b5..b46d2ef44b 100644 --- a/Makefile +++ b/Makefile @@ -73,31 +73,9 @@ build-frontend: build: build-agent build-server -release-agent: - GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o release/drone-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent - -release-server: - GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -ldflags '${LDFLAGS}' -o release/drone-server github.com/woodpecker-ci/woodpecker/cmd/drone-server - -release-cli: - # disable CGO for cross-compiling - export CGO_ENABLED=0 - # compile for all architectures - GOOS=linux GOARCH=amd64 go build -ldflags "-X main.version=${DRONE_TAG##v}" -o cli/release/linux/amd64/woodpecker github.com/woodpecker-ci/woodpecker/cli/drone - GOOS=linux GOARCH=arm64 go build -ldflags "-X main.version=${DRONE_TAG##v}" -o cli/release/linux/arm64/woodpecker github.com/woodpecker-ci/woodpecker/cli/drone - GOOS=linux GOARCH=arm go build -ldflags "-X main.version=${DRONE_TAG##v}" -o cli/release/linux/arm/woodpecker github.com/woodpecker-ci/woodpecker/cli/drone - GOOS=windows GOARCH=amd64 go build -ldflags "-X main.version=${DRONE_TAG##v}" -o cli/release/windows/amd64/woodpecker github.com/woodpecker-ci/woodpecker/cli/drone - GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.version=${DRONE_TAG##v}" -o cli/release/darwin/amd64/woodpecker github.com/woodpecker-ci/woodpecker/cli/drone - # tar binary files prior to upload - tar -cvzf cli/release/woodpecker_linux_amd64.tar.gz -C cli/release/linux/amd64 woodpecker - tar -cvzf cli/release/woodpecker_linux_arm64.tar.gz -C cli/release/linux/arm64 woodpecker - tar -cvzf cli/release/woodpecker_linux_arm.tar.gz -C cli/release/linux/arm woodpecker - tar -cvzf cli/release/woodpecker_windows_amd64.tar.gz -C cli/release/windows/amd64 woodpecker - tar -cvzf cli/release/woodpecker_darwin_amd64.tar.gz -C cli/release/darwin/amd64 woodpecker - # generate shas for tar files - sha256sum cli/release/*.tar.gz > cli/release/woodpecker_checksums.txt - -release: release-agent release-server +.PHONY: release +release: + goreleaser release install: go install github.com/woodpecker-ci/woodpecker/cmd/drone-agent From e5d1e8efed69e55ea937b8a88293a0b162aacd3e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 10:24:49 +0200 Subject: [PATCH 10/73] release on push to master as well --- .woodpecker/.release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 979df96e96..f2cbfa373f 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -9,7 +9,8 @@ pipeline: commands: - release when: - event: tag + event: [tag, push] + branch: master depends_on: - test From 3698c5d06dfc3c5ed916a03e9ba5ac50f63724df Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 10:32:27 +0200 Subject: [PATCH 11/73] deactivate branch master for testing --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index f2cbfa373f..f58e02b4be 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -10,7 +10,7 @@ pipeline: - release when: event: [tag, push] - branch: master + # branch: master depends_on: - test From 424342e7ebd9cf94b6a3a56d4b4019cec32a8b6d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 10:34:27 +0200 Subject: [PATCH 12/73] speed up test ci for testing xD --- .woodpecker/.test.yml | 52 +++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/.woodpecker/.test.yml b/.woodpecker/.test.yml index 336f3dbc34..793cdc20eb 100644 --- a/.woodpecker/.test.yml +++ b/.woodpecker/.test.yml @@ -8,36 +8,36 @@ pipeline: group: test commands: - make deps - - make test - - make vet + # - make test + # - make vet - make formatcheck - test-frontend: - image: node:10.17.0-stretch - group: test - commands: - - (cd web/; yarn install) - - (cd web/; yarn run lesshint) - - (cd web/; yarn run lint --quiet) - - make test-frontend + # test-frontend: + # image: node:10.17.0-stretch + # group: test + # commands: + # - (cd web/; yarn install) + # - (cd web/; yarn run lesshint) + # - (cd web/; yarn run lint --quiet) + # - make test-frontend - test-postgres: - image: golang:1.16 - group: db-test - environment: - - DATABASE_DRIVER=postgres - - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + # test-postgres: + # image: golang:1.16 + # group: db-test + # environment: + # - DATABASE_DRIVER=postgres + # - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable + # commands: + # - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - test-mysql: - image: golang:1.16 - group: db-test - environment: - - DATABASE_DRIVER=mysql - - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + # test-mysql: + # image: golang:1.16 + # group: db-test + # environment: + # - DATABASE_DRIVER=mysql + # - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true + # commands: + # - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore services: postgres: From fce434e9ddab4bf58806804767f11ee35ebba461 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 10:57:41 +0200 Subject: [PATCH 13/73] fix depends on --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index f58e02b4be..872bb0a79f 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -13,4 +13,4 @@ pipeline: # branch: master depends_on: - - test + - "woodpecker/.test" From db89fb3c360627c24ab68517a4f737f3457d7790 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:02:46 +0200 Subject: [PATCH 14/73] fix cmd --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 872bb0a79f..739db87361 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -7,7 +7,7 @@ pipeline: image: ghcr.io/goreleaser/goreleaser:v0.174.1 secrets: [github_token, docker_username, docker_password] commands: - - release + - goreleaser release when: event: [tag, push] # branch: master From fb35ffc0c04d4b172c73658c13959e598e3d58de Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:26:21 +0200 Subject: [PATCH 15/73] release snapshot for master --- .woodpecker/.release.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 739db87361..55833a7fe2 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -1,6 +1,7 @@ clone: git: image: plugins/git:next + depth: 0 pipeline: release: @@ -9,8 +10,17 @@ pipeline: commands: - goreleaser release when: - event: [tag, push] + event: tag + + release-snapshot: + image: ghcr.io/goreleaser/goreleaser:v0.174.1 + secrets: [github_token, docker_username, docker_password] + commands: + - goreleaser release + when: + event: push # branch: master + depends_on: - "woodpecker/.test" From 6b18df538bc75577b462eabd610257a8a2584f4a Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:29:17 +0200 Subject: [PATCH 16/73] fix load tags --- .woodpecker/.release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 55833a7fe2..e15d99e2e4 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -1,7 +1,7 @@ clone: git: image: plugins/git:next - depth: 0 + tags: true pipeline: release: @@ -21,6 +21,5 @@ pipeline: event: push # branch: master - depends_on: - "woodpecker/.test" From 3dbaec965ac0ea5fec0586bbfb3f9c1dfefb3f26 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:34:59 +0200 Subject: [PATCH 17/73] try latest git plugin --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index e15d99e2e4..49db4f72e0 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -1,6 +1,6 @@ clone: git: - image: plugins/git:next + image: plugins/git tags: true pipeline: From e968268573b556b951e21f8fcbfa24948c0e6d92 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:35:44 +0200 Subject: [PATCH 18/73] disable test --- .woodpecker/.release.yml | 4 +- .woodpecker/.test.yml | 98 ++++++++++++++++++++-------------------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 49db4f72e0..15c80a924c 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -21,5 +21,5 @@ pipeline: event: push # branch: master -depends_on: - - "woodpecker/.test" +# depends_on: +# - "woodpecker/.test" diff --git a/.woodpecker/.test.yml b/.woodpecker/.test.yml index 793cdc20eb..51fb5f4d7b 100644 --- a/.woodpecker/.test.yml +++ b/.woodpecker/.test.yml @@ -1,54 +1,54 @@ -clone: - git: - image: plugins/git:next +# clone: +# git: +# image: plugins/git:next -pipeline: - test: - image: golang:1.16 - group: test - commands: - - make deps - # - make test - # - make vet - - make formatcheck +# pipeline: +# test: +# image: golang:1.16 +# group: test +# commands: +# - make deps +# - make test +# - make vet +# - make formatcheck - # test-frontend: - # image: node:10.17.0-stretch - # group: test - # commands: - # - (cd web/; yarn install) - # - (cd web/; yarn run lesshint) - # - (cd web/; yarn run lint --quiet) - # - make test-frontend +# test-frontend: +# image: node:10.17.0-stretch +# group: test +# commands: +# - (cd web/; yarn install) +# - (cd web/; yarn run lesshint) +# - (cd web/; yarn run lint --quiet) +# - make test-frontend - # test-postgres: - # image: golang:1.16 - # group: db-test - # environment: - # - DATABASE_DRIVER=postgres - # - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable - # commands: - # - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore +# test-postgres: +# image: golang:1.16 +# group: db-test +# environment: +# - DATABASE_DRIVER=postgres +# - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable +# commands: +# - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - # test-mysql: - # image: golang:1.16 - # group: db-test - # environment: - # - DATABASE_DRIVER=mysql - # - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true - # commands: - # - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore +# test-mysql: +# image: golang:1.16 +# group: db-test +# environment: +# - DATABASE_DRIVER=mysql +# - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true +# commands: +# - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore -services: - postgres: - image: postgres:9.6 - ports: ["5432"] - environment: - - POSTGRES_USER=postgres - - POSTGRES_HOST_AUTH_METHOD=trust - mysql: - image: mysql:5.6.27 - ports: ["3306"] - environment: - - MYSQL_DATABASE=test - - MYSQL_ALLOW_EMPTY_PASSWORD=yes +# services: +# postgres: +# image: postgres:9.6 +# ports: ["5432"] +# environment: +# - POSTGRES_USER=postgres +# - POSTGRES_HOST_AUTH_METHOD=trust +# mysql: +# image: mysql:5.6.27 +# ports: ["3306"] +# environment: +# - MYSQL_DATABASE=test +# - MYSQL_ALLOW_EMPTY_PASSWORD=yes From 1370c0ecb333ff584e4c7645a30757013505865a Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:36:44 +0200 Subject: [PATCH 19/73] disable test --- .woodpecker/.test.yml | 54 ---------------------------------- .woodpecker/.test.yml.inactive | 54 ++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 54 deletions(-) delete mode 100644 .woodpecker/.test.yml create mode 100644 .woodpecker/.test.yml.inactive diff --git a/.woodpecker/.test.yml b/.woodpecker/.test.yml deleted file mode 100644 index 51fb5f4d7b..0000000000 --- a/.woodpecker/.test.yml +++ /dev/null @@ -1,54 +0,0 @@ -# clone: -# git: -# image: plugins/git:next - -# pipeline: -# test: -# image: golang:1.16 -# group: test -# commands: -# - make deps -# - make test -# - make vet -# - make formatcheck - -# test-frontend: -# image: node:10.17.0-stretch -# group: test -# commands: -# - (cd web/; yarn install) -# - (cd web/; yarn run lesshint) -# - (cd web/; yarn run lint --quiet) -# - make test-frontend - -# test-postgres: -# image: golang:1.16 -# group: db-test -# environment: -# - DATABASE_DRIVER=postgres -# - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable -# commands: -# - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - -# test-mysql: -# image: golang:1.16 -# group: db-test -# environment: -# - DATABASE_DRIVER=mysql -# - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true -# commands: -# - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore - -# services: -# postgres: -# image: postgres:9.6 -# ports: ["5432"] -# environment: -# - POSTGRES_USER=postgres -# - POSTGRES_HOST_AUTH_METHOD=trust -# mysql: -# image: mysql:5.6.27 -# ports: ["3306"] -# environment: -# - MYSQL_DATABASE=test -# - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/.woodpecker/.test.yml.inactive b/.woodpecker/.test.yml.inactive new file mode 100644 index 0000000000..336f3dbc34 --- /dev/null +++ b/.woodpecker/.test.yml.inactive @@ -0,0 +1,54 @@ +clone: + git: + image: plugins/git:next + +pipeline: + test: + image: golang:1.16 + group: test + commands: + - make deps + - make test + - make vet + - make formatcheck + + test-frontend: + image: node:10.17.0-stretch + group: test + commands: + - (cd web/; yarn install) + - (cd web/; yarn run lesshint) + - (cd web/; yarn run lint --quiet) + - make test-frontend + + test-postgres: + image: golang:1.16 + group: db-test + environment: + - DATABASE_DRIVER=postgres + - DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + + test-mysql: + image: golang:1.16 + group: db-test + environment: + - DATABASE_DRIVER=mysql + - DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/store/datastore + +services: + postgres: + image: postgres:9.6 + ports: ["5432"] + environment: + - POSTGRES_USER=postgres + - POSTGRES_HOST_AUTH_METHOD=trust + mysql: + image: mysql:5.6.27 + ports: ["3306"] + environment: + - MYSQL_DATABASE=test + - MYSQL_ALLOW_EMPTY_PASSWORD=yes From 5d2367f1a5908a758902fb0dda7a0cec2bd7b9ea Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:43:42 +0200 Subject: [PATCH 20/73] disable tests --- .woodpecker/{.test.yml.inactive => inactive/.test.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .woodpecker/{.test.yml.inactive => inactive/.test.yml} (100%) diff --git a/.woodpecker/.test.yml.inactive b/.woodpecker/inactive/.test.yml similarity index 100% rename from .woodpecker/.test.yml.inactive rename to .woodpecker/inactive/.test.yml From 4bad7a3bc9a6694350c17178cb0ef7737f8d0c6b Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:49:39 +0200 Subject: [PATCH 21/73] git debug --- .woodpecker/.release.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 15c80a924c..95ef948d8d 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -1,9 +1,14 @@ clone: git: - image: plugins/git - tags: true + image: plugins/git:next pipeline: + git: + image: docker:git + commands: + - git fetch --tags + - git status + release: image: ghcr.io/goreleaser/goreleaser:v0.174.1 secrets: [github_token, docker_username, docker_password] From e8246452b3436398a37fed103db3d59b7d56ee12 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 11:50:55 +0200 Subject: [PATCH 22/73] rename job --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 95ef948d8d..a171e3093f 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -3,7 +3,7 @@ clone: image: plugins/git:next pipeline: - git: + fetch: image: docker:git commands: - git fetch --tags From 70609fc7adcb3eaeb653d4af3ee798e374e0b988 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 12:06:24 +0200 Subject: [PATCH 23/73] on master only --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index a171e3093f..947625c92d 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -24,7 +24,7 @@ pipeline: - goreleaser release when: event: push - # branch: master + branch: master # depends_on: # - "woodpecker/.test" From a69b4feb6a8337a2a4e622c0bfd8908b0415204d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:09:53 +0200 Subject: [PATCH 24/73] add docker socket --- .woodpecker/.release.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 947625c92d..f05a9cea6b 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -21,10 +21,21 @@ pipeline: image: ghcr.io/goreleaser/goreleaser:v0.174.1 secrets: [github_token, docker_username, docker_password] commands: - - goreleaser release + - goreleaser release --snapshot + # docker tag woodpeckerci/woodpecker-cli:... woodpeckerci/woodpecker-cli:latest + # - docker push woodpeckerci/woodpecker-cli:latest + # docker tag woodpeckerci/woodpecker-server:... woodpeckerci/woodpecker-server:latest + # - docker push woodpeckerci/woodpecker-server:latest + # docker tag woodpeckerci/woodpecker-agent:... woodpeckerci/woodpecker-agent:latest + # - docker push woodpeckerci/woodpecker-agent:latest when: event: push branch: master +volumes: + - name: docker_sock + host: + path: /var/run/docker.sock + # depends_on: # - "woodpecker/.test" From 9145cd7e5344ae5788b43d16392e8dfc95797b3c Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:12:42 +0200 Subject: [PATCH 25/73] trigger ci From c661a243002ae673eab5093135ed033f76582862 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:14:14 +0200 Subject: [PATCH 26/73] fix volumes --- .woodpecker/.release.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index f05a9cea6b..247c40d54d 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -14,6 +14,8 @@ pipeline: secrets: [github_token, docker_username, docker_password] commands: - goreleaser release + volumes: + - /var/run/docker.sock:/var/run/docker.sock when: event: tag @@ -28,14 +30,11 @@ pipeline: # - docker push woodpeckerci/woodpecker-server:latest # docker tag woodpeckerci/woodpecker-agent:... woodpeckerci/woodpecker-agent:latest # - docker push woodpeckerci/woodpecker-agent:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock when: event: push branch: master -volumes: - - name: docker_sock - host: - path: /var/run/docker.sock - # depends_on: # - "woodpecker/.test" From 4dbd35e88726d85d8ffdc9a8dec962ee52fd40b0 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:17:52 +0200 Subject: [PATCH 27/73] trigger ci2 From d012abe7b6467b21a90f8ebd6e3d2f494ffc84e3 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:18:16 +0200 Subject: [PATCH 28/73] trigger ci3 From 873d2a9bbf5b0c7293a324323f6b8f6bd0b00071 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 20 Aug 2021 17:32:14 +0200 Subject: [PATCH 29/73] release next version --- .goreleaser.yml | 2 +- .woodpecker/.release.yml | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 7707798e78..567ba0e94f 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -58,7 +58,7 @@ builds: checksum: name_template: 'checksums.txt' snapshot: - name_template: "{{ .Tag }}-next" + name_template: "next" changelog: sort: asc filters: diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 247c40d54d..80265232c0 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -24,12 +24,13 @@ pipeline: secrets: [github_token, docker_username, docker_password] commands: - goreleaser release --snapshot - # docker tag woodpeckerci/woodpecker-cli:... woodpeckerci/woodpecker-cli:latest - # - docker push woodpeckerci/woodpecker-cli:latest - # docker tag woodpeckerci/woodpecker-server:... woodpeckerci/woodpecker-server:latest - # - docker push woodpeckerci/woodpecker-server:latest - # docker tag woodpeckerci/woodpecker-agent:... woodpeckerci/woodpecker-agent:latest - # - docker push woodpeckerci/woodpecker-agent:latest + - docker image ls + - docker tag woodpeckerci/woodpecker-cli:latest woodpeckerci/woodpecker-cli:next + - docker push woodpeckerci/woodpecker-cli:next + - docker tag woodpeckerci/woodpecker-server:latest woodpeckerci/woodpecker-server:next + - docker push woodpeckerci/woodpecker-server:next + - docker tag woodpeckerci/woodpecker-agent:latest woodpeckerci/woodpecker-agent:next + - docker push woodpeckerci/woodpecker-agent:next volumes: - /var/run/docker.sock:/var/run/docker.sock when: From 9830fc2c674485e56796b3dad3c7b9159fcaa5b5 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sun, 22 Aug 2021 14:27:34 +0200 Subject: [PATCH 30/73] fixes --- .gitignore | 2 +- .goreleaser.yml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index c61eab4871..c2b7f385f3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,7 @@ vendor/ ### Frontend ### -web/node_modules +node_modules web/dist/files web/*.log web/.env diff --git a/.goreleaser.yml b/.goreleaser.yml index 567ba0e94f..09d6e40bac 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -107,37 +107,37 @@ dockers: goarch: amd64 dockerfile: docker/Dockerfile.server image_templates: - - "woodpeckerci/woodpecker-server:{{ .Tag }}" + - "woodpeckerci/woodpecker-server:{{ .Version }}" - "woodpeckerci/woodpecker-server:latest" - goos: linux goarch: amd64 dockerfile: docker/Dockerfile.server.alpine image_templates: - - "woodpeckerci/woodpecker-server:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-server:{{ .Version }}-alpine" - "woodpeckerci/woodpecker-server:latest-alpine" - goos: linux goarch: amd64 dockerfile: docker/Dockerfile.agent image_templates: - - "woodpeckerci/woodpecker-agent:{{ .Tag }}" + - "woodpeckerci/woodpecker-agent:{{ .Version }}" - "woodpeckerci/woodpecker-agent:latest" - goos: linux goarch: amd64 dockerfile: docker/Dockerfile.agent.alpine image_templates: - - "woodpeckerci/woodpecker-agent:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-agent:{{ .Version }}-alpine" - "woodpeckerci/woodpecker-agent:latest-alpine" - goos: linux goarch: amd64 dockerfile: docker/Dockerfile.cli image_templates: - - "woodpeckerci/woodpecker-cli:{{ .Tag }}" + - "woodpeckerci/woodpecker-cli:{{ .Version }}" - "woodpeckerci/woodpecker-cli:latest" - goos: linux goarch: amd64 dockerfile: docker/Dockerfile.cli.alpine image_templates: - - "woodpeckerci/woodpecker-cli:{{ .Tag }}-alpine" + - "woodpeckerci/woodpecker-cli:{{ .Version }}-alpine" - "woodpeckerci/woodpecker-cli:latest-alpine" archives: - id: server From 4934d174172e963ebe475ae8d4c418d32f9d9739 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 01:23:29 +0200 Subject: [PATCH 31/73] feat: improve release workflow --- .goreleaser.yml | 76 ++++++++++------------- .releaserc.json | 20 ++++++ .woodpecker/.release.yml | 74 ++++++++++++++++------ .woodpecker/scripts/build-docker-image.sh | 35 +++++++++++ Makefile | 12 ++-- 5 files changed, 149 insertions(+), 68 deletions(-) create mode 100644 .releaserc.json create mode 100644 .woodpecker/scripts/build-docker-image.sh diff --git a/.goreleaser.yml b/.goreleaser.yml index 09d6e40bac..09c732a4cb 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -57,14 +57,8 @@ builds: - -extldflags "-static" checksum: name_template: 'checksums.txt' -snapshot: - name_template: "next" changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' + skip: true nfpms: - id: server package_name: server @@ -102,43 +96,37 @@ nfpms: - deb - rpm meta: true -dockers: - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.server - image_templates: - - "woodpeckerci/woodpecker-server:{{ .Version }}" - - "woodpeckerci/woodpecker-server:latest" - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.server.alpine - image_templates: - - "woodpeckerci/woodpecker-server:{{ .Version }}-alpine" - - "woodpeckerci/woodpecker-server:latest-alpine" - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.agent - image_templates: - - "woodpeckerci/woodpecker-agent:{{ .Version }}" - - "woodpeckerci/woodpecker-agent:latest" - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.agent.alpine - image_templates: - - "woodpeckerci/woodpecker-agent:{{ .Version }}-alpine" - - "woodpeckerci/woodpecker-agent:latest-alpine" - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.cli - image_templates: - - "woodpeckerci/woodpecker-cli:{{ .Version }}" - - "woodpeckerci/woodpecker-cli:latest" - - goos: linux - goarch: amd64 - dockerfile: docker/Dockerfile.cli.alpine - image_templates: - - "woodpeckerci/woodpecker-cli:{{ .Version }}-alpine" - - "woodpeckerci/woodpecker-cli:latest-alpine" +# dockers: +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.server +# image_templates: +# - "woodpeckerci/woodpecker-server:{{ .Version }}" +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.server.alpine +# image_templates: +# - "woodpeckerci/woodpecker-server:{{ .Version }}-alpine" +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.agent +# image_templates: +# - "woodpeckerci/woodpecker-agent:{{ .Version }}" +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.agent.alpine +# image_templates: +# - "woodpeckerci/woodpecker-agent:{{ .Version }}-alpine" +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.cli +# image_templates: +# - "woodpeckerci/woodpecker-cli:{{ .Version }}" +# - goos: linux +# goarch: amd64 +# dockerfile: docker/Dockerfile.cli.alpine +# image_templates: +# - "woodpeckerci/woodpecker-cli:{{ .Version }}-alpine" archives: - id: server builds: diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000000..c9a46e6df3 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,20 @@ +{ + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/github", + { + "assets": [ + { "path": "dist/checksums.txt", "label": "CSS distribution" }, + { "path": "dist/*.apk", "label": "JS distribution" }, + { "path": "dist/*.deb", "label": "JS distribution" }, + { "path": "dist/*.rpm", "label": "JS distribution" }, + { "path": "dist/*.tar.gz", "label": "JS distribution" }, + { "path": "dist/*.zip", "label": "JS distribution" } + ] + } + ] + ], + "branches": ["main", "master", "release-2"] +} diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 80265232c0..705cdc34e7 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -9,33 +9,69 @@ pipeline: - git fetch --tags - git status - release: + build: image: ghcr.io/goreleaser/goreleaser:v0.174.1 - secrets: [github_token, docker_username, docker_password] commands: - - goreleaser release - volumes: - - /var/run/docker.sock:/var/run/docker.sock + - export GORELEASER_CURRENT_TAG=$DRONE_TAG + - goreleaser release --skip-validate --rm-dist --skip-publish when: event: tag - release-snapshot: - image: ghcr.io/goreleaser/goreleaser:v0.174.1 - secrets: [github_token, docker_username, docker_password] + build-docker-server: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=server + commands: + - .woodpecker/scripts/build-docker-image.sh + when: + event: tag + + build-docker-agent: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=agent + commands: + - .woodpecker/scripts/build-docker-image.sh + when: + event: tag + + build-docker-cli: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=cli + commands: + - .woodpecker/scripts/build-docker-image.sh + when: + event: tag + + release: + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [github_token] commands: - - goreleaser release --snapshot - - docker image ls - - docker tag woodpeckerci/woodpecker-cli:latest woodpeckerci/woodpecker-cli:next - - docker push woodpeckerci/woodpecker-cli:next - - docker tag woodpeckerci/woodpecker-server:latest woodpeckerci/woodpecker-server:next - - docker push woodpeckerci/woodpecker-server:next - - docker tag woodpeckerci/woodpecker-agent:latest woodpeckerci/woodpecker-agent:next - - docker push woodpeckerci/woodpecker-agent:next - volumes: - - /var/run/docker.sock:/var/run/docker.sock + - npx semantic-release when: event: push - branch: master + + # release-github: + # image: plugins/github-release + # secrets: [github_token] + # api_key: $GITHUB_TOKEN + # files: + # - dist/checksums.txt + # - dist/*.apk + # - dist/*.deb + # - dist/*.rpm + # - dist/*.tar.gz + # title: $DRONE_TAG + # note: CHANGELOG.md + # when: + # event: tag # depends_on: # - "woodpecker/.test" diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh new file mode 100644 index 0000000000..c7fa402ad1 --- /dev/null +++ b/.woodpecker/scripts/build-docker-image.sh @@ -0,0 +1,35 @@ +#! /bin/sh + +REGISTRY="docker.io" +IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" +PATH_BINARY="./dist/cli_linux_amd64/woodpecker-$IMAGE_TYPE" +PATH_CONTEXT="./dist/docker-woodpecker-$IMAGE_TYPE" +PATH_DOCKERFILE="./docker/Dockerfile.cli" + +mkdir -p /kaniko/.docker +echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USERNAME\",\"password\":\"$DOCKER_PASSWORD\"}}}" \ + > /kaniko/.docker/config.json + +echo "Preparing build context ..." +mkdir -p $PATH_CONTEXT/ +cp $PATH_BINARY $PATH_CONTEXT/ +cp $PATH_DOCKERFILE $PATH_CONTEXT/Dockerfile + +# prepare alpine version +mkdir -p $PATH_CONTEXT-alpine/ +cp $PATH_BINARY $PATH_CONTEXT-alpine/ +cp $PATH_DOCKERFILE.alpine $PATH_CONTEXT-alpine/Dockerfile + +echo "Building image ..." +/kaniko/executor \ + --context $PATH_CONTEXT/ \ + --destination $IMAGE:latest \ + --destination $IMAGE:$DRONE_TAG \ + +echo "Building alpine image ..." +/kaniko/executor \ + --context $PATH_CONTEXT-alpine/ \ + --destination $IMAGE:latest-alpine \ + --destination $IMAGE:$DRONE_TAG-alpine \ + +echo "Done" diff --git a/Makefile b/Makefile index b46d2ef44b..a7422a85fa 100644 --- a/Makefile +++ b/Makefile @@ -62,16 +62,18 @@ test-lib: test: test-lib test-agent test-server build-agent: - $(DOCKER_RUN) go build -o build/drone-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent - -build-server: - $(DOCKER_RUN) go build -o build/drone-server github.com/woodpecker-ci/woodpecker/cmd/drone-server + $(DOCKER_RUN) go build -o dist/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent build-frontend: (cd web/; yarn run build) +build-server: build-frontend + $(DOCKER_RUN) go build -o dist/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server + +build-cli: + $(DOCKER_RUN) go build -o dist/woodpecker-cli github.com/woodpecker-ci/woodpecker/cmd/drone-server -build: build-agent build-server +build: build-agent build-server build-cli .PHONY: release release: From 5c9fe72f7ba4d8e2bf6e700ec47984e0f53e8458 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 01:26:05 +0200 Subject: [PATCH 32/73] fix: use node image --- .woodpecker/.release.yml | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 705cdc34e7..9463c0b3d8 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -17,46 +17,46 @@ pipeline: when: event: tag - build-docker-server: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=server - commands: - - .woodpecker/scripts/build-docker-image.sh - when: - event: tag + # build-docker-server: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=server + # commands: + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: tag - build-docker-agent: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=agent - commands: - - .woodpecker/scripts/build-docker-image.sh - when: - event: tag + # build-docker-agent: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=agent + # commands: + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: tag - build-docker-cli: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=cli - commands: - - .woodpecker/scripts/build-docker-image.sh - when: - event: tag + # build-docker-cli: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=cli + # commands: + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: tag release: - image: gcr.io/kaniko-project/executor:v1.6.0-debug + image: node:14-alpine secrets: [github_token] commands: - npx semantic-release when: - event: push + event: [push, tag] # release-github: # image: plugins/github-release From 4a4105f1d260b7931ec2f02e56e4ee5d8e19fbea Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 01:28:34 +0200 Subject: [PATCH 33/73] fix: add git --- .woodpecker/.release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 9463c0b3d8..84b7d727a7 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -54,6 +54,7 @@ pipeline: image: node:14-alpine secrets: [github_token] commands: + - apk add git - npx semantic-release when: event: [push, tag] From d58fe8ed367179c963d47f11162844119c8a122d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:02:35 +0200 Subject: [PATCH 34/73] feat: improve release workflow --- .releaserc.json | 21 +++++--- .woodpecker/.release.yml | 109 ++++++++++++++++++++++----------------- 2 files changed, 74 insertions(+), 56 deletions(-) diff --git a/.releaserc.json b/.releaserc.json index c9a46e6df3..0168d55bf1 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -6,15 +6,20 @@ "@semantic-release/github", { "assets": [ - { "path": "dist/checksums.txt", "label": "CSS distribution" }, - { "path": "dist/*.apk", "label": "JS distribution" }, - { "path": "dist/*.deb", "label": "JS distribution" }, - { "path": "dist/*.rpm", "label": "JS distribution" }, - { "path": "dist/*.tar.gz", "label": "JS distribution" }, - { "path": "dist/*.zip", "label": "JS distribution" } + { "path": "dist/checksums.txt", "label": "Checksums" }, + { "path": "dist/*.apk", "label": "APK packages" }, + { "path": "dist/*.deb", "label": "DEB packages" }, + { "path": "dist/*.rpm", "label": "RPM packages" }, + { "path": "dist/*.tar.gz", "label": "Archives" }, + { "path": "dist/*.zip", "label": "Archives" } ] } + ], + [ + "@semantic-release/exec", + { + "prepareCmd": "echo ${nextRelease.version} > ./woodpecker-version" + } ] - ], - "branches": ["main", "master", "release-2"] + ] } diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 84b7d727a7..adc0c87d11 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -8,71 +8,84 @@ pipeline: commands: - git fetch --tags - git status + when: + event: push + branch: master + + prepare-release: + image: node:14-alpine + secrets: [github_token] + commands: + - apk add git + - npm i semantic-release @semantic-release/exec + - npx semantic-release --plugins @semantic-release/commit-analyzer,@semantic-release/exec + when: + event: push + branch: master build: image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - - export GORELEASER_CURRENT_TAG=$DRONE_TAG + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - export GORELEASER_CURRENT_TAG=$WOODPECKER_VERSION - goreleaser release --skip-validate --rm-dist --skip-publish when: - event: tag + event: push + branch: master - # build-docker-server: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=server - # commands: - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: tag + build-docker-server: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=server + commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - .woodpecker/scripts/build-docker-image.sh + when: + event: push + branch: master - # build-docker-agent: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=agent - # commands: - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: tag + build-docker-agent: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=agent + commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - .woodpecker/scripts/build-docker-image.sh + when: + event: push + branch: master - # build-docker-cli: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=cli - # commands: - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: tag + build-docker-cli: + group: build-docker + image: gcr.io/kaniko-project/executor:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=cli + commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - .woodpecker/scripts/build-docker-image.sh + when: + event: push + branch: master release: image: node:14-alpine secrets: [github_token] commands: - apk add git + - npm i semantic-release @semantic-release/exec # should already be installed by prepare-release - npx semantic-release when: - event: [push, tag] - - # release-github: - # image: plugins/github-release - # secrets: [github_token] - # api_key: $GITHUB_TOKEN - # files: - # - dist/checksums.txt - # - dist/*.apk - # - dist/*.deb - # - dist/*.rpm - # - dist/*.tar.gz - # title: $DRONE_TAG - # note: CHANGELOG.md - # when: - # event: tag + event: push + branch: master # depends_on: # - "woodpecker/.test" From a96f4395e48d838a24151e7102d0fadab3b7dea4 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:07:26 +0200 Subject: [PATCH 35/73] fix: use correct version --- .woodpecker/scripts/build-docker-image.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index c7fa402ad1..0bcd8191d5 100644 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -24,12 +24,12 @@ echo "Building image ..." /kaniko/executor \ --context $PATH_CONTEXT/ \ --destination $IMAGE:latest \ - --destination $IMAGE:$DRONE_TAG \ + --destination $IMAGE:$WOODPECKER_VERSION \ echo "Building alpine image ..." /kaniko/executor \ --context $PATH_CONTEXT-alpine/ \ --destination $IMAGE:latest-alpine \ - --destination $IMAGE:$DRONE_TAG-alpine \ + --destination $IMAGE:$WOODPECKER_VERSION-alpine \ echo "Done" From fdf80484beb4038e05370b6ee8c863205131ce40 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:08:56 +0200 Subject: [PATCH 36/73] thing From 4320a70a1743c5b2c096b13beffb6ffd4bfeb6c2 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:10:42 +0200 Subject: [PATCH 37/73] feat: trigger ci From 06f1bf1249c5ce06e4648f37c8c63d674c6429c2 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:12:35 +0200 Subject: [PATCH 38/73] fix: indent when correctly --- .woodpecker/.release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index adc0c87d11..f33e0c6a83 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -8,9 +8,9 @@ pipeline: commands: - git fetch --tags - git status - when: - event: push - branch: master + when: + event: push + branch: master prepare-release: image: node:14-alpine From f59f31e57905b9d1ff0cf0bf9a0d0d2a527fe29a Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:20:37 +0200 Subject: [PATCH 39/73] fix: test entrypoint --- .woodpecker/.release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index f33e0c6a83..0f4673d083 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -40,6 +40,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=server + entrypoint: '' commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found @@ -54,6 +55,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=agent + entrypoint: [''] commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found @@ -68,7 +70,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=cli - commands: + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found - .woodpecker/scripts/build-docker-image.sh From d7fcb9ec45ddc6c4e3abf5c8ccfd5b3faad57572 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:54:03 +0200 Subject: [PATCH 40/73] fix: correct build --- .releaserc.json | 2 +- .woodpecker/.release.yml | 14 ++++++-------- .woodpecker/scripts/build-docker-image.sh | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.releaserc.json b/.releaserc.json index 0168d55bf1..6ea8f6b9f5 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -18,7 +18,7 @@ [ "@semantic-release/exec", { - "prepareCmd": "echo ${nextRelease.version} > ./woodpecker-version" + "verifyReleaseCmd": "echo ${nextRelease.version} > ./woodpecker-version" } ] ] diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 0f4673d083..4854098180 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -18,7 +18,7 @@ pipeline: commands: - apk add git - npm i semantic-release @semantic-release/exec - - npx semantic-release --plugins @semantic-release/commit-analyzer,@semantic-release/exec + - npx semantic-release --dry-run when: event: push branch: master @@ -27,7 +27,7 @@ pipeline: image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - export GORELEASER_CURRENT_TAG=$WOODPECKER_VERSION - goreleaser release --skip-validate --rm-dist --skip-publish when: @@ -40,10 +40,9 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=server - entrypoint: '' commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh when: event: push @@ -55,10 +54,9 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=agent - entrypoint: [''] commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh when: event: push @@ -70,9 +68,9 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=cli - entrypoint: + commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if not version is found + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh when: event: push diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index 0bcd8191d5..5569c17440 100644 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -1,4 +1,4 @@ -#! /bin/sh +#! /busybox/sh REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" From 7ee0c61b40dc5ca4bd66130c49a695d8eae665eb Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 24 Aug 2021 02:58:30 +0200 Subject: [PATCH 41/73] fix: use proper shell --- .woodpecker/.release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 4854098180..da180c3c1c 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -40,7 +40,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=server - commands: + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh @@ -54,7 +54,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=agent - commands: + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh @@ -68,7 +68,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=cli - commands: + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh From c27072ad982115f6e08c072bf4840be13e414a3e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:37:40 +0200 Subject: [PATCH 42/73] fix: improve docker build --- .woodpecker/.release.yml | 104 +++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 36 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index da180c3c1c..c1c8b8eede 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -34,47 +34,79 @@ pipeline: event: push branch: master - build-docker-server: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=server - entrypoint: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - - .woodpecker/scripts/build-docker-image.sh + prepare-docker: + image: alpine:3.14.1 + commands: + - echo "Preparing build context ..." + # server + - mkdir -p ./dist/docker-woodpecker-server/ + - cp ./dist/server_linux_amd64/woodpecker-server ./dist/docker-woodpecker-server/ + - cp ./docker/Dockerfile.server ./dist/docker-woodpecker-server/Dockerfile + # server alpine + - mkdir -p ./dist/docker-woodpecker-server-alpine/ + - cp ./dist/server_linux_amd64/woodpecker-server ./dist/docker-woodpecker-server-alpine/ + - cp ./docker/Dockerfile.server.alpine ./dist/docker-woodpecker-server-alpine/Dockerfile + # agent + - mkdir -p ./dist/docker-woodpecker-agent/ + - cp ./dist/agent_linux_amd64/woodpecker-agent ./dist/docker-woodpecker-agent/ + - cp ./docker/Dockerfile.agent ./dist/docker-woodpecker-agent/Dockerfile + # agent alpine + - mkdir -p ./dist/docker-woodpecker-agent-alpine/ + - cp ./dist/agent_linux_amd64/woodpecker-agent ./dist/docker-woodpecker-agent-alpine/ + - cp ./docker/Dockerfile.agent.alpine ./dist/docker-woodpecker-agent-alpine/Dockerfile + # cli + - mkdir -p ./dist/docker-woodpecker-cli/ + - cp ./dist/cli_linux_amd64/woodpecker-cli ./dist/docker-woodpecker-cli/ + - cp ./docker/Dockerfile.cli ./dist/docker-woodpecker-cli/Dockerfile + # cli alpine + - mkdir -p ./dist/docker-woodpecker-cli-alpine/ + - cp ./dist/cli_linux_amd64/woodpecker-cli ./dist/docker-woodpecker-cli-alpine/ + - cp ./docker/Dockerfile.cli.alpine ./dist/docker-woodpecker-cli-alpine/Dockerfile when: event: push branch: master - build-docker-agent: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=agent - entrypoint: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - - .woodpecker/scripts/build-docker-image.sh - when: - event: push - branch: master + # build-docker-server: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=server + # entrypoint: + # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: push + # branch: master - build-docker-cli: - group: build-docker - image: gcr.io/kaniko-project/executor:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=cli - entrypoint: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - - .woodpecker/scripts/build-docker-image.sh - when: - event: push - branch: master + # build-docker-agent: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=agent + # entrypoint: + # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: push + # branch: master + + # build-docker-cli: + # group: build-docker + # image: gcr.io/kaniko-project/executor:v1.6.0-debug + # secrets: [docker_username, docker_password] + # environment: + # - IMAGE_TYPE=cli + # entrypoint: + # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + # - .woodpecker/scripts/build-docker-image.sh + # when: + # event: push + # branch: master release: image: node:14-alpine From 41333ecb38cbdf8e4ee74fa002889d0bb3559b15 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:42:19 +0200 Subject: [PATCH 43/73] fix: escape vars --- .woodpecker/.release.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index c1c8b8eede..35b03c0271 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -26,9 +26,10 @@ pipeline: build: image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - - export GORELEASER_CURRENT_TAG=$WOODPECKER_VERSION + - export WOODPECKER_VERSION=$$(cat ./woodpecker-version) + - echo "Version: $$WOODPECKER_VERSION" + - test "$$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - export GORELEASER_CURRENT_TAG="$$WOODPECKER_VERSION" - goreleaser release --skip-validate --rm-dist --skip-publish when: event: push @@ -38,6 +39,7 @@ pipeline: image: alpine:3.14.1 commands: - echo "Preparing build context ..." + - ls ./dist # server - mkdir -p ./dist/docker-woodpecker-server/ - cp ./dist/server_linux_amd64/woodpecker-server ./dist/docker-woodpecker-server/ From 9c872d70153672a23530d3e22729a6d1ae48521e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:44:13 +0200 Subject: [PATCH 44/73] fix: un-escape vars --- .woodpecker/.release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 35b03c0271..649c8fd0de 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -26,10 +26,10 @@ pipeline: build: image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - - export WOODPECKER_VERSION=$$(cat ./woodpecker-version) - - echo "Version: $$WOODPECKER_VERSION" - - test "$$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - - export GORELEASER_CURRENT_TAG="$$WOODPECKER_VERSION" + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - echo "Version $WOODPECKER_VERSION" + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - goreleaser release --skip-validate --rm-dist --skip-publish when: event: push From ad4fa87ff7b7872202f83ed1aa4c05f5f8a14b46 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:46:28 +0200 Subject: [PATCH 45/73] fix: move comment --- .woodpecker/.release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 649c8fd0de..e86a8e5981 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -28,7 +28,8 @@ pipeline: commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - echo "Version $WOODPECKER_VERSION" - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + # skip if no version is found + - test "$WOODPECKER_VERSION" -ne "" || exit 0 - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - goreleaser release --skip-validate --rm-dist --skip-publish when: From bb34475f19a9c34698b46775364278c09b6c4d9d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:50:09 +0200 Subject: [PATCH 46/73] fix: test version check --- .woodpecker/.release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index e86a8e5981..3bda7b8573 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -29,7 +29,7 @@ pipeline: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - echo "Version $WOODPECKER_VERSION" # skip if no version is found - - test "$WOODPECKER_VERSION" -ne "" || exit 0 + - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - goreleaser release --skip-validate --rm-dist --skip-publish when: From 1bae904720e8d43f129aaa649d8353bb25654f8c Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:55:38 +0200 Subject: [PATCH 47/73] ci: remove labels of release files --- .releaserc.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.releaserc.json b/.releaserc.json index 6ea8f6b9f5..46fa0c82d4 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -6,12 +6,12 @@ "@semantic-release/github", { "assets": [ - { "path": "dist/checksums.txt", "label": "Checksums" }, - { "path": "dist/*.apk", "label": "APK packages" }, - { "path": "dist/*.deb", "label": "DEB packages" }, - { "path": "dist/*.rpm", "label": "RPM packages" }, - { "path": "dist/*.tar.gz", "label": "Archives" }, - { "path": "dist/*.zip", "label": "Archives" } + { "path": "dist/checksums.txt" }, + { "path": "dist/*.apk" }, + { "path": "dist/*.deb" }, + { "path": "dist/*.rpm" }, + { "path": "dist/*.tar.gz" }, + { "path": "dist/*.zip" } ] } ], From a2d0e6223e62349b2e35e7acf2e69fa6b66518c3 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 11:59:11 +0200 Subject: [PATCH 48/73] cI: skip release if not update --- .woodpecker/.release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 3bda7b8573..191e76df8c 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -39,6 +39,8 @@ pipeline: prepare-docker: image: alpine:3.14.1 commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - echo "Preparing build context ..." - ls ./dist # server From 92a1cbed0774af3f3fff3286a3e9bb1a84f68328 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 26 Aug 2021 12:04:24 +0200 Subject: [PATCH 49/73] feat: skip last check if not needed --- .woodpecker/.release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 191e76df8c..3b3da70c69 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -117,6 +117,8 @@ pipeline: image: node:14-alpine secrets: [github_token] commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - echo "Version $WOODPECKER_VERSION" - apk add git - npm i semantic-release @semantic-release/exec # should already be installed by prepare-release - npx semantic-release From 56205fa94502b1b7fbbfad0e84f5179425502063 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 27 Aug 2021 18:15:10 +0200 Subject: [PATCH 50/73] feat: improve release flow --- .woodpecker/.release.yml | 71 ++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 3b3da70c69..4675307e76 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -9,8 +9,8 @@ pipeline: - git fetch --tags - git status when: - event: push - branch: master + event: push + branch: master prepare-release: image: node:14-alpine @@ -23,15 +23,57 @@ pipeline: event: push branch: master - build: - image: ghcr.io/goreleaser/goreleaser:v0.174.1 + prepare-build: + image: golang:1.16 commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - echo "Version $WOODPECKER_VERSION" - # skip if no version is found + - go mod tidy + - go get github.com/woodpecker-ci/togo + - cd web/ + - go generate ./... + when: + event: push + branch: master + + build: + image: golang:1.16 + commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version || echo '') + - echo "Version $WOODPECKER_VERSION" - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - - goreleaser release --skip-validate --rm-dist --skip-publish + # server + - export CGO_ENABLED=1 + - export LD_FLAGS="-s -w -X github.com/woodpecker-ci/woodpecker/version.Version=$WOODPECKER_VERSION -extldflags \"-static\"" + - go build -o dist/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server -ldflags="$LD_FLAGS" + # agent + - export CGO_ENABLED=0 + - export LD_FLAGS="-s -w -X github.com/woodpecker-ci/woodpecker/version.Version=$WOODPECKER_VERSION -extldflags \"-static\"" + - go build -o dist/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-server + # cli + - export CGO_ENABLED=0 + - export LD_FLAGS="-s -w -X main.version=$WOODPECKER_VERSION -extldflags \"-static\"" + - go build -o dist/woodpecker-cli github.com/woodpecker-ci/woodpecker/cmd/drone-server + when: + event: push + branch: master + + build-packages: + image: golang:1.16 + commands: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 + - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest + - nfpm package --config ./nfpm.yml --target ./dist + when: + event: push + branch: master + + build-archives: + image: alpine:3.14.1 + commands: + # TODO + - echo "Do some building ..." when: event: push branch: master @@ -45,27 +87,27 @@ pipeline: - ls ./dist # server - mkdir -p ./dist/docker-woodpecker-server/ - - cp ./dist/server_linux_amd64/woodpecker-server ./dist/docker-woodpecker-server/ + - cp ./dist/woodpecker-server ./dist/docker-woodpecker-server/ - cp ./docker/Dockerfile.server ./dist/docker-woodpecker-server/Dockerfile # server alpine - mkdir -p ./dist/docker-woodpecker-server-alpine/ - - cp ./dist/server_linux_amd64/woodpecker-server ./dist/docker-woodpecker-server-alpine/ + - cp ./dist/woodpecker-server ./dist/docker-woodpecker-server-alpine/ - cp ./docker/Dockerfile.server.alpine ./dist/docker-woodpecker-server-alpine/Dockerfile # agent - mkdir -p ./dist/docker-woodpecker-agent/ - - cp ./dist/agent_linux_amd64/woodpecker-agent ./dist/docker-woodpecker-agent/ + - cp ./dist/woodpecker-agent ./dist/docker-woodpecker-agent/ - cp ./docker/Dockerfile.agent ./dist/docker-woodpecker-agent/Dockerfile # agent alpine - mkdir -p ./dist/docker-woodpecker-agent-alpine/ - - cp ./dist/agent_linux_amd64/woodpecker-agent ./dist/docker-woodpecker-agent-alpine/ + - cp ./dist/woodpecker-agent ./dist/docker-woodpecker-agent-alpine/ - cp ./docker/Dockerfile.agent.alpine ./dist/docker-woodpecker-agent-alpine/Dockerfile # cli - mkdir -p ./dist/docker-woodpecker-cli/ - - cp ./dist/cli_linux_amd64/woodpecker-cli ./dist/docker-woodpecker-cli/ + - cp ./dist/woodpecker-cli ./dist/docker-woodpecker-cli/ - cp ./docker/Dockerfile.cli ./dist/docker-woodpecker-cli/Dockerfile # cli alpine - mkdir -p ./dist/docker-woodpecker-cli-alpine/ - - cp ./dist/cli_linux_amd64/woodpecker-cli ./dist/docker-woodpecker-cli-alpine/ + - cp ./dist/woodpecker-cli ./dist/docker-woodpecker-cli-alpine/ - cp ./docker/Dockerfile.cli.alpine ./dist/docker-woodpecker-cli-alpine/Dockerfile when: event: push @@ -120,7 +162,8 @@ pipeline: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - echo "Version $WOODPECKER_VERSION" - apk add git - - npm i semantic-release @semantic-release/exec # should already be installed by prepare-release + # should already be installed by prepare-release + - npm i semantic-release @semantic-release/exec - npx semantic-release when: event: push From 2d238d6296c437a754c8b53a6f503041927a3e89 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 27 Aug 2021 18:46:39 +0200 Subject: [PATCH 51/73] feat: use improved kaniko image --- .woodpecker/.release.yml | 150 +++++++++++-------------------- docker/Dockerfile.kaniko-builder | 5 ++ 2 files changed, 57 insertions(+), 98 deletions(-) create mode 100644 docker/Dockerfile.kaniko-builder diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 4675307e76..7511a4dc47 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -37,124 +37,78 @@ pipeline: branch: master build: - image: golang:1.16 + image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version || echo '') - - echo "Version $WOODPECKER_VERSION" + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - # server - - export CGO_ENABLED=1 - - export LD_FLAGS="-s -w -X github.com/woodpecker-ci/woodpecker/version.Version=$WOODPECKER_VERSION -extldflags \"-static\"" - - go build -o dist/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server -ldflags="$LD_FLAGS" - # agent - - export CGO_ENABLED=0 - - export LD_FLAGS="-s -w -X github.com/woodpecker-ci/woodpecker/version.Version=$WOODPECKER_VERSION -extldflags \"-static\"" - - go build -o dist/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-server - # cli - - export CGO_ENABLED=0 - - export LD_FLAGS="-s -w -X main.version=$WOODPECKER_VERSION -extldflags \"-static\"" - - go build -o dist/woodpecker-cli github.com/woodpecker-ci/woodpecker/cmd/drone-server + - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" + - goreleaser release --skip-validate --rm-dist --skip-publish when: event: push branch: master - build-packages: - image: golang:1.16 - commands: + # build-packages: + # image: golang:1.16 + # commands: + # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + # - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 + # - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest + # - nfpm package --config ./nfpm.yml --target ./dist + # when: + # event: push + # branch: master + + # build-archives: + # image: alpine:3.14.1 + # commands: + # # TODO + # - echo "Do some building ..." + # when: + # event: push + # branch: master + + build-docker-server: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=server + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest - - nfpm package --config ./nfpm.yml --target ./dist + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - .woodpecker/scripts/build-docker-image.sh when: event: push branch: master - build-archives: - image: alpine:3.14.1 - commands: - # TODO - - echo "Do some building ..." + build-docker-agent: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=agent + entrypoint: + - export WOODPECKER_VERSION=$(cat ./woodpecker-version) + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - .woodpecker/scripts/build-docker-image.sh when: event: push branch: master - prepare-docker: - image: alpine:3.14.1 - commands: + build-docker-cli: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=cli + entrypoint: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - - echo "Preparing build context ..." - - ls ./dist - # server - - mkdir -p ./dist/docker-woodpecker-server/ - - cp ./dist/woodpecker-server ./dist/docker-woodpecker-server/ - - cp ./docker/Dockerfile.server ./dist/docker-woodpecker-server/Dockerfile - # server alpine - - mkdir -p ./dist/docker-woodpecker-server-alpine/ - - cp ./dist/woodpecker-server ./dist/docker-woodpecker-server-alpine/ - - cp ./docker/Dockerfile.server.alpine ./dist/docker-woodpecker-server-alpine/Dockerfile - # agent - - mkdir -p ./dist/docker-woodpecker-agent/ - - cp ./dist/woodpecker-agent ./dist/docker-woodpecker-agent/ - - cp ./docker/Dockerfile.agent ./dist/docker-woodpecker-agent/Dockerfile - # agent alpine - - mkdir -p ./dist/docker-woodpecker-agent-alpine/ - - cp ./dist/woodpecker-agent ./dist/docker-woodpecker-agent-alpine/ - - cp ./docker/Dockerfile.agent.alpine ./dist/docker-woodpecker-agent-alpine/Dockerfile - # cli - - mkdir -p ./dist/docker-woodpecker-cli/ - - cp ./dist/woodpecker-cli ./dist/docker-woodpecker-cli/ - - cp ./docker/Dockerfile.cli ./dist/docker-woodpecker-cli/Dockerfile - # cli alpine - - mkdir -p ./dist/docker-woodpecker-cli-alpine/ - - cp ./dist/woodpecker-cli ./dist/docker-woodpecker-cli-alpine/ - - cp ./docker/Dockerfile.cli.alpine ./dist/docker-woodpecker-cli-alpine/Dockerfile + - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - .woodpecker/scripts/build-docker-image.sh when: event: push branch: master - # build-docker-server: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=server - # entrypoint: - # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: push - # branch: master - - # build-docker-agent: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=agent - # entrypoint: - # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: push - # branch: master - - # build-docker-cli: - # group: build-docker - # image: gcr.io/kaniko-project/executor:v1.6.0-debug - # secrets: [docker_username, docker_password] - # environment: - # - IMAGE_TYPE=cli - # entrypoint: - # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - # - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - # - .woodpecker/scripts/build-docker-image.sh - # when: - # event: push - # branch: master - release: image: node:14-alpine secrets: [github_token] diff --git a/docker/Dockerfile.kaniko-builder b/docker/Dockerfile.kaniko-builder new file mode 100644 index 0000000000..95f7df0cee --- /dev/null +++ b/docker/Dockerfile.kaniko-builder @@ -0,0 +1,5 @@ +# docker/: docker build -t anbraten/kaniko:v1.6.0-debug -f Dockerfile.kaniko-builder . + +FROM gcr.io/kaniko-project/executor:v1.6.0-debug +RUN ["/busybox/mkdir", "-p", "/bin/sh"] +RUN ["/busybox/ln", "-s", "/busybox/sh", "/bin/sh"] From 573aae4166880c0d5b0a26a892b48de293c45e25 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 27 Aug 2021 18:47:18 +0200 Subject: [PATCH 52/73] fix: correct ci syntax --- .woodpecker/.release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 7511a4dc47..8c050fbe42 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -73,7 +73,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=server - entrypoint: + commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh @@ -87,7 +87,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=agent - entrypoint: + commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh @@ -101,7 +101,7 @@ pipeline: secrets: [docker_username, docker_password] environment: - IMAGE_TYPE=cli - entrypoint: + commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found - .woodpecker/scripts/build-docker-image.sh From 2d7e43c7230a8546bc38f4b68128483a967cd020 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 09:21:58 +0200 Subject: [PATCH 53/73] fix: correct release test commands --- .woodpecker/.release.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 8c050fbe42..888f6beb1a 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -28,6 +28,7 @@ pipeline: commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - echo "Version $WOODPECKER_VERSION" + - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - go mod tidy - go get github.com/woodpecker-ci/togo - cd web/ @@ -40,7 +41,7 @@ pipeline: image: ghcr.io/goreleaser/goreleaser:v0.174.1 commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 + - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - goreleaser release --skip-validate --rm-dist --skip-publish when: @@ -75,7 +76,7 @@ pipeline: - IMAGE_TYPE=server commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - .woodpecker/scripts/build-docker-image.sh when: event: push @@ -89,7 +90,7 @@ pipeline: - IMAGE_TYPE=agent commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - .woodpecker/scripts/build-docker-image.sh when: event: push @@ -103,7 +104,7 @@ pipeline: - IMAGE_TYPE=cli commands: - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "$WOODPECKER_VERSION" -ne "" || exit 0 # skip if no version is found + - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - .woodpecker/scripts/build-docker-image.sh when: event: push From a8073f0d9719904d8983768a9eba1bccce9e8099 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 09:22:25 +0200 Subject: [PATCH 54/73] fix: correct kaniko image --- docker/Dockerfile.kaniko-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile.kaniko-builder b/docker/Dockerfile.kaniko-builder index 95f7df0cee..d51a765e00 100644 --- a/docker/Dockerfile.kaniko-builder +++ b/docker/Dockerfile.kaniko-builder @@ -1,5 +1,5 @@ # docker/: docker build -t anbraten/kaniko:v1.6.0-debug -f Dockerfile.kaniko-builder . FROM gcr.io/kaniko-project/executor:v1.6.0-debug -RUN ["/busybox/mkdir", "-p", "/bin/sh"] +RUN ["/busybox/mkdir", "-p", "/bin"] RUN ["/busybox/ln", "-s", "/busybox/sh", "/bin/sh"] From 909025359d53868cf5bf900afa1d111ae52c9b9e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 09:28:03 +0200 Subject: [PATCH 55/73] fix: make script exectuable --- .woodpecker/scripts/build-docker-image.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .woodpecker/scripts/build-docker-image.sh diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh old mode 100644 new mode 100755 From 7e26731a5b075a0bc3c3aa91388eb9f37a211658 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 09:42:29 +0200 Subject: [PATCH 56/73] fix: correct build-script --- .woodpecker/scripts/build-docker-image.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index 5569c17440..7c761920e6 100755 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -2,9 +2,9 @@ REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" -PATH_BINARY="./dist/cli_linux_amd64/woodpecker-$IMAGE_TYPE" +PATH_BINARY="./dist/$IMAGE_TYPE_linux_amd64/woodpecker-$IMAGE_TYPE" PATH_CONTEXT="./dist/docker-woodpecker-$IMAGE_TYPE" -PATH_DOCKERFILE="./docker/Dockerfile.cli" +PATH_DOCKERFILE="./docker/Dockerfile.$IMAGE_TYPE" mkdir -p /kaniko/.docker echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USERNAME\",\"password\":\"$DOCKER_PASSWORD\"}}}" \ From 704d904e42d194c4d7776591e87264f899cf7e2f Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 11:16:17 +0200 Subject: [PATCH 57/73] feat: trigger ci From 8e4c1c53e2c7b9426dea14de943fb5d428b4c30c Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 11:28:05 +0200 Subject: [PATCH 58/73] fix: correct var --- .woodpecker/scripts/build-docker-image.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index 7c761920e6..a685a9be16 100755 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -2,10 +2,12 @@ REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" -PATH_BINARY="./dist/$IMAGE_TYPE_linux_amd64/woodpecker-$IMAGE_TYPE" +PATH_BINARY="./dist/${IMAGE_TYPE}_linux_amd64/woodpecker-$IMAGE_TYPE" PATH_CONTEXT="./dist/docker-woodpecker-$IMAGE_TYPE" PATH_DOCKERFILE="./docker/Dockerfile.$IMAGE_TYPE" +echo "Building $IMAGE_TYPE => $IMAGE:$WOODPECKER_VERSION ..." + mkdir -p /kaniko/.docker echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USERNAME\",\"password\":\"$DOCKER_PASSWORD\"}}}" \ > /kaniko/.docker/config.json From f347f7c300302e676019b22b55f04ad7b25cdcf3 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 11:35:18 +0200 Subject: [PATCH 59/73] fix: exit script directly after error --- .woodpecker/scripts/build-docker-image.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index a685a9be16..9d78066aab 100755 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -1,4 +1,6 @@ -#! /busybox/sh +#! /bin/sh + +set -e REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" From 43d0a61170119201f4ab4511c73087bd9574c4d6 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 28 Aug 2021 12:18:19 +0200 Subject: [PATCH 60/73] feat: run ci on master only --- .woodpecker/.release.yml | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml index 888f6beb1a..a959c5828f 100644 --- a/.woodpecker/.release.yml +++ b/.woodpecker/.release.yml @@ -2,6 +2,8 @@ clone: git: image: plugins/git:next +branches: master + pipeline: fetch: image: docker:git @@ -48,26 +50,6 @@ pipeline: event: push branch: master - # build-packages: - # image: golang:1.16 - # commands: - # - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - # - test "version-$WOODPECKER_VERSION" != "version-" || exit 0 - # - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest - # - nfpm package --config ./nfpm.yml --target ./dist - # when: - # event: push - # branch: master - - # build-archives: - # image: alpine:3.14.1 - # commands: - # # TODO - # - echo "Do some building ..." - # when: - # event: push - # branch: master - build-docker-server: group: build-docker image: anbraten/kaniko:v1.6.0-debug @@ -124,5 +106,6 @@ pipeline: event: push branch: master +# TODO # depends_on: # - "woodpecker/.test" From f75957e6a48f9d0a5b623824834069bc5788edf1 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 31 Aug 2021 11:27:14 +0200 Subject: [PATCH 61/73] improve release flow --- .dockerignore | 4 - .gitignore | 2 - .goreleaser.yml | 124 ------------------ .releaserc.json | 25 ---- .woodpecker/.release.yml | 111 ---------------- .woodpecker/release.yml | 112 ++++++++++++++++ .woodpecker/scripts/build-docker-image.sh | 37 ++++-- .woodpecker/{inactive/.test.yml => test.yml} | 1 - BUILDING | 20 --- Makefile | 59 +++++++-- docker-compose.example.yml | 23 ++-- {docker => release/docker}/Dockerfile.agent | 0 .../docker}/Dockerfile.agent.alpine | 0 {docker => release/docker}/Dockerfile.cli | 0 .../docker}/Dockerfile.cli.alpine | 0 .../docker}/Dockerfile.kaniko-builder | 0 {docker => release/docker}/Dockerfile.server | 0 .../docker}/Dockerfile.server.alpine | 0 release/nfpm-agent.yml | 19 +++ release/nfpm-cli.yml | 19 +++ release/nfpm-server.yml | 19 +++ tools.go | 2 +- 22 files changed, 255 insertions(+), 322 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .releaserc.json delete mode 100644 .woodpecker/.release.yml create mode 100644 .woodpecker/release.yml rename .woodpecker/{inactive/.test.yml => test.yml} (98%) delete mode 100644 BUILDING rename {docker => release/docker}/Dockerfile.agent (100%) rename {docker => release/docker}/Dockerfile.agent.alpine (100%) rename {docker => release/docker}/Dockerfile.cli (100%) rename {docker => release/docker}/Dockerfile.cli.alpine (100%) rename {docker => release/docker}/Dockerfile.kaniko-builder (100%) rename {docker => release/docker}/Dockerfile.server (100%) rename {docker => release/docker}/Dockerfile.server.alpine (100%) create mode 100644 release/nfpm-agent.yml create mode 100644 release/nfpm-cli.yml create mode 100644 release/nfpm-server.yml diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index d57fc44282..0000000000 --- a/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -* -!dist/* -.env - diff --git a/.gitignore b/.gitignore index d3bbf9c179..64e37a3b7d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,9 +32,7 @@ docker-compose.yml *.out /.env extras/ -release/ build/ -cli/release/ server/swagger/files/*.json server/swagger/swagger_gen.go diff --git a/.goreleaser.yml b/.goreleaser.yml index 09c732a4cb..00c5d8bd1b 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,62 +1,3 @@ -before: - hooks: - - go mod tidy - - go get github.com/woodpecker-ci/togo - - sh -c "cd web/; go generate ./..." -builds: - - id: server - main: ./cmd/drone-server - binary: woodpecker-server - env: - - CGO_ENABLED=1 - goos: - - linux - # - windows - # - darwin - goarch: - - amd64 - # - arm - # - arm64 - ldflags: - - -s -w - - -X github.com/woodpecker-ci/woodpecker/version.Version={{.Version}} - - -extldflags "-static" - - id: agent - main: ./cmd/drone-agent - binary: woodpecker-agent - env: - - CGO_ENABLED=0 - goos: - - linux - # - windows - # - darwin - goarch: - - amd64 - # - arm - # - arm64 - ldflags: - - -s -w - - -X github.com/woodpecker-ci/woodpecker/version.Version={{.Version}} - - -extldflags "-static" - - id: cli - dir: ./cli/drone - binary: woodpecker-cli - env: - - CGO_ENABLED=0 - goos: - - linux - - windows - - darwin - goarch: - - amd64 - # - arm - # - arm64 - ldflags: - - -s -w - - -X main.version={{.Version}} - - -extldflags "-static" -checksum: - name_template: 'checksums.txt' changelog: skip: true nfpms: @@ -96,68 +37,3 @@ nfpms: - deb - rpm meta: true -# dockers: -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.server -# image_templates: -# - "woodpeckerci/woodpecker-server:{{ .Version }}" -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.server.alpine -# image_templates: -# - "woodpeckerci/woodpecker-server:{{ .Version }}-alpine" -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.agent -# image_templates: -# - "woodpeckerci/woodpecker-agent:{{ .Version }}" -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.agent.alpine -# image_templates: -# - "woodpeckerci/woodpecker-agent:{{ .Version }}-alpine" -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.cli -# image_templates: -# - "woodpeckerci/woodpecker-cli:{{ .Version }}" -# - goos: linux -# goarch: amd64 -# dockerfile: docker/Dockerfile.cli.alpine -# image_templates: -# - "woodpeckerci/woodpecker-cli:{{ .Version }}-alpine" -archives: - - id: server - builds: - - server - name_template: "{{ .ProjectName }}-server_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - format_overrides: - - goos: windows - format: zip - files: - - LICENSE - - README.md - - CHANGELOG.md - - id: agent - builds: - - agent - name_template: "{{ .ProjectName }}-agent_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - format_overrides: - - goos: windows - format: zip - files: - - LICENSE - - README.md - - CHANGELOG.md - - id: cli - builds: - - cli - name_template: "{{ .ProjectName }}-cli_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - format_overrides: - - goos: windows - format: zip - files: - - LICENSE - - README.md - - CHANGELOG.md diff --git a/.releaserc.json b/.releaserc.json deleted file mode 100644 index 46fa0c82d4..0000000000 --- a/.releaserc.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "plugins": [ - "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", - [ - "@semantic-release/github", - { - "assets": [ - { "path": "dist/checksums.txt" }, - { "path": "dist/*.apk" }, - { "path": "dist/*.deb" }, - { "path": "dist/*.rpm" }, - { "path": "dist/*.tar.gz" }, - { "path": "dist/*.zip" } - ] - } - ], - [ - "@semantic-release/exec", - { - "verifyReleaseCmd": "echo ${nextRelease.version} > ./woodpecker-version" - } - ] - ] -} diff --git a/.woodpecker/.release.yml b/.woodpecker/.release.yml deleted file mode 100644 index a959c5828f..0000000000 --- a/.woodpecker/.release.yml +++ /dev/null @@ -1,111 +0,0 @@ -clone: - git: - image: plugins/git:next - -branches: master - -pipeline: - fetch: - image: docker:git - commands: - - git fetch --tags - - git status - when: - event: push - branch: master - - prepare-release: - image: node:14-alpine - secrets: [github_token] - commands: - - apk add git - - npm i semantic-release @semantic-release/exec - - npx semantic-release --dry-run - when: - event: push - branch: master - - prepare-build: - image: golang:1.16 - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - echo "Version $WOODPECKER_VERSION" - - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - - go mod tidy - - go get github.com/woodpecker-ci/togo - - cd web/ - - go generate ./... - when: - event: push - branch: master - - build: - image: ghcr.io/goreleaser/goreleaser:v0.174.1 - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - - export GORELEASER_CURRENT_TAG="$WOODPECKER_VERSION" - - goreleaser release --skip-validate --rm-dist --skip-publish - when: - event: push - branch: master - - build-docker-server: - group: build-docker - image: anbraten/kaniko:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=server - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - - .woodpecker/scripts/build-docker-image.sh - when: - event: push - branch: master - - build-docker-agent: - group: build-docker - image: anbraten/kaniko:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=agent - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - - .woodpecker/scripts/build-docker-image.sh - when: - event: push - branch: master - - build-docker-cli: - group: build-docker - image: anbraten/kaniko:v1.6.0-debug - secrets: [docker_username, docker_password] - environment: - - IMAGE_TYPE=cli - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - test "v-$WOODPECKER_VERSION" != "v-" || exit 0 - - .woodpecker/scripts/build-docker-image.sh - when: - event: push - branch: master - - release: - image: node:14-alpine - secrets: [github_token] - commands: - - export WOODPECKER_VERSION=$(cat ./woodpecker-version) - - echo "Version $WOODPECKER_VERSION" - - apk add git - # should already be installed by prepare-release - - npm i semantic-release @semantic-release/exec - - npx semantic-release - when: - event: push - branch: master - -# TODO -# depends_on: -# - "woodpecker/.test" diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml new file mode 100644 index 0000000000..85de1d1067 --- /dev/null +++ b/.woodpecker/release.yml @@ -0,0 +1,112 @@ +clone: + git: + image: plugins/git:next + +pipeline: + build: + image: golang:1.16 + commands: + - go mod tidy + - make release + when: + event: [push, tag] + branch: master + + build-docker-server: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=server + commands: + - export WOODPECKER_VERSION=$(make version) + - .woodpecker/scripts/build-docker-image.sh + when: + event: [push, tag] + branch: master + + build-docker-agent: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=agent + commands: + - export WOODPECKER_VERSION=$(make version) + - .woodpecker/scripts/build-docker-image.sh + when: + event: [push, tag] + branch: master + + build-docker-cli: + group: build-docker + image: anbraten/kaniko:v1.6.0-debug + secrets: [docker_username, docker_password] + environment: + - IMAGE_TYPE=cli + commands: + - export WOODPECKER_VERSION=$(make version) + - .woodpecker/scripts/build-docker-image.sh + when: + event: [push, tag] + branch: master + + build-adk-deb-rpm: + group: build-docker + image: golang:1.16 + commands: + - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v1.10.3 + - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager apk + - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager deb + - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager rpm + - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager apk + - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager deb + - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager rpm + - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager apk + - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager deb + - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager rpm + when: + event: [push, tag] + branch: master + + changelog: + image: alpine:3.14.1 + commands: + - apk add make + - curl -L https://dl.gitea.io/changelog-tool/master/changelog-master-linux-amd64 > changelog + - chmod +x ./changelog + - ./changelog -m=$(make version) generate > CHANGELOG-latest.md + - ./changelog -m=$(make version) contributors >> CHANGELOG-latest.md + - echo -e "$(cat CHANGELOG-latest.md)\n$(cat CHANGELOG.md)" > CHANGELOG.md + # TODO push changed CHANGELOG.md with woodpecker-bot + when: + event: tag + + checksums: + image: golang:1.16 + commands: + - make release-checksums + when: + event: tag + + # TODO: upload build artifacts for pushes to master + + release: + image: plugins/github-release + files: + - dist/*.tar.gz + - dist/*.apk + - dist/*.deb + - dist/*.rpm + - dist/checksums.txt + title: ${DRONE_TAG##v} + note: CHANGELOG-latest.md + secrets: + - source: github_token + target: github_release_api_key + when: + event: tag + +# TODO +# depends_on: +# - test diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index 9d78066aab..c9722c01f8 100755 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -6,10 +6,11 @@ REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" PATH_BINARY="./dist/${IMAGE_TYPE}_linux_amd64/woodpecker-$IMAGE_TYPE" PATH_CONTEXT="./dist/docker-woodpecker-$IMAGE_TYPE" -PATH_DOCKERFILE="./docker/Dockerfile.$IMAGE_TYPE" +PATH_DOCKERFILE="./release/docker/Dockerfile.$IMAGE_TYPE" echo "Building $IMAGE_TYPE => $IMAGE:$WOODPECKER_VERSION ..." +# setup credentials mkdir -p /kaniko/.docker echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USERNAME\",\"password\":\"$DOCKER_PASSWORD\"}}}" \ > /kaniko/.docker/config.json @@ -24,16 +25,28 @@ mkdir -p $PATH_CONTEXT-alpine/ cp $PATH_BINARY $PATH_CONTEXT-alpine/ cp $PATH_DOCKERFILE.alpine $PATH_CONTEXT-alpine/Dockerfile -echo "Building image ..." -/kaniko/executor \ - --context $PATH_CONTEXT/ \ - --destination $IMAGE:latest \ - --destination $IMAGE:$WOODPECKER_VERSION \ - -echo "Building alpine image ..." -/kaniko/executor \ - --context $PATH_CONTEXT-alpine/ \ - --destination $IMAGE:latest-alpine \ - --destination $IMAGE:$WOODPECKER_VERSION-alpine \ +if "$WOODPECKER_VERSION" == "next"; then + echo "Building pre-release (next) image ..." + /kaniko/executor \ + --context $PATH_CONTEXT/ \ + --destination $IMAGE:next + + echo "Building pre-release (next) alpine image ..." + /kaniko/executor \ + --context $PATH_CONTEXT-alpine/ \ + --destination $IMAGE:next-alpine +else + echo "Building image ..." + /kaniko/executor \ + --context $PATH_CONTEXT/ \ + --destination $IMAGE:latest \ + --destination $IMAGE:$WOODPECKER_VERSION + + echo "Building alpine image ..." + /kaniko/executor \ + --context $PATH_CONTEXT-alpine/ \ + --destination $IMAGE:latest-alpine \ + --destination $IMAGE:$WOODPECKER_VERSION-alpine +fi echo "Done" diff --git a/.woodpecker/inactive/.test.yml b/.woodpecker/test.yml similarity index 98% rename from .woodpecker/inactive/.test.yml rename to .woodpecker/test.yml index 336f3dbc34..c5f68825f3 100644 --- a/.woodpecker/inactive/.test.yml +++ b/.woodpecker/test.yml @@ -7,7 +7,6 @@ pipeline: image: golang:1.16 group: test commands: - - make deps - make test - make vet - make formatcheck diff --git a/BUILDING b/BUILDING deleted file mode 100644 index 23adc4dcdb..0000000000 --- a/BUILDING +++ /dev/null @@ -1,20 +0,0 @@ -1. Install go 1.9 or later -2. Execute `make deps` to download dependencies -3. Execute `make install` to compile project and install binaries to `GOPATH` - ---- - -0. To generate SQL files - -go get github.com/vektra/mockery/.../ - -export download_url=$(curl -s https://api.github.com/repos/go-swagger/go-swagger/releases/latest | \ - jq -r '.assets[] | select(.name | contains("'"$(uname | tr '[:upper:]' '[:lower:]')"'_amd64")) | .browser_download_url') -curl -o swagger -L'#' "$download_url" -chmod +x swagger -sudo mv swagger /usr/local/bin - -go get github.com/woodpecker-ci/togo - -go generate - diff --git a/Makefile b/Makefile index 920a81d188..29358ba6d2 100644 --- a/Makefile +++ b/Makefile @@ -2,16 +2,18 @@ DOCKER_RUN_GO_VERSION=1.16 GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./.git/*") GO_PACKAGES ?= $(shell go list ./... | grep -v /vendor/) -VERSION ?= ${DRONE_TAG} -ifeq ($(VERSION),) - VERSION := $(shell echo ${DRONE_COMMIT_SHA} | head -c 8) +VERSION ?= next +ifneq ($(DRONE_TAG),) + VERSION := $(DRONE_TAG:v%=%) endif -LDFLAGS ?= -extldflags "-static" -ifneq ($(VERSION),) - LDFLAGS := ${LDFLAGS} -X github.com/woodpecker-ci/woodpecker/version.Version=${VERSION} +BUILD_VERSION := $(VERSION) +ifeq ($(BUILD_VERSION),next) + BUILD_VERSION := $(shell echo "next-$(shell echo ${DRONE_COMMIT_SHA} | head -c 8)") endif +LDFLAGS := -s -w -extldflags "-static" -X github.com/woodpecker-ci/woodpecker/version.Version=${BUILD_VERSION} +LDFLAGS_CLI := -s -w -extldflags "-static" -X main.version=${BUILD_VERSION} DOCKER_RUN?= _with-docker: @@ -57,7 +59,7 @@ build-agent: $(DOCKER_RUN) go build -o dist/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent build-frontend: - (cd web/; yarn run build) + (cd web/; yarn install; yarn run build) build-server: build-frontend $(DOCKER_RUN) go build -o dist/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server @@ -67,9 +69,46 @@ build-cli: build: build-agent build-server build-cli -.PHONY: release -release: - goreleaser release +release-frontend: build-frontend + (cd web/; go generate ./...) + +release-server: release-frontend + # compile + GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -ldflags '${LDFLAGS}' -o dist/server/linux_amd64/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server + # tar binary files + tar -cvzf dist/woodpecker-server_linux_amd64.tar.gz -C dist/server/linux_amd64 woodpecker-server + +release-agent: + # compile + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_amd64/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent + # tar binary files + tar -cvzf dist/woodpecker-agent_linux_amd64.tar.gz -C dist/agent/linux_amd64 woodpecker-agent + +release-cli: + # compile + GOOS=linux GOARCH=amd64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/linux_amd64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + GOOS=linux GOARCH=arm64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/linux_arm64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + GOOS=linux GOARCH=arm go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/linux_arm/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + GOOS=windows GOARCH=amd64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/windows_amd64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + GOOS=darwin GOARCH=amd64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/darwin_amd64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + GOOS=darwin GOARCH=arm64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/darwin_arm64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone + # tar binary files + tar -cvzf dist/woodpecker-cli_linux_amd64.tar.gz -C dist/cli/linux_amd64 woodpecker-cli + tar -cvzf dist/woodpecker-cli_linux_arm64.tar.gz -C dist/cli/linux_arm64 woodpecker-cli + tar -cvzf dist/woodpecker-cli_linux_arm.tar.gz -C dist/cli/linux_arm woodpecker-cli + tar -cvzf dist/woodpecker-cli_windows_amd64.tar.gz -C dist/cli/windows_amd64 woodpecker-cli + tar -cvzf dist/woodpecker-cli_darwin_amd64.tar.gz -C dist/cli/darwin_amd64 woodpecker-cli + tar -cvzf dist/woodpecker-cli_darwin_arm64.tar.gz -C dist/cli/darwin_arm64 woodpecker-cli + +release-checksums: + # generate shas for tar files + (cd dist/; sha256sum *.{tar.gz,apk,deb,rpm} > checksums.txt) + +release: release-server release-agent release-cli release-checksums + +.PHONY: version +version: + @echo ${VERSION} install: go install github.com/woodpecker-ci/woodpecker/cmd/drone-agent diff --git a/docker-compose.example.yml b/docker-compose.example.yml index ac4720a53e..302513afd6 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -2,30 +2,29 @@ version: '3' services: woodpecker-server: - build: - context: . - dockerfile: Dockerfile - image: woodpeckerci/woodpecker-server:local + image: woodpeckerci/woodpecker-server:next ports: - 8000:8000 volumes: - - /var/lib/drone:/var/lib/drone/ + - woodpecker-server-data:/var/lib/drone/ environment: - WOODPECKER_OPEN=true - WOODPECKER_ADMIN=laszlocph - - WOODPECKER_HOST=${HOST} + - WOODPECKER_HOST=${WOODPECKER_HOST} - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${GITHUB_SECRET} + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - build: - context: . - dockerfile: Dockerfile.agent - image: woodpeckerci/woodpecker-agent:local + image: woodpeckerci/woodpecker-agent:next + depends_on: + - woodpecker-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - WOODPECKER_SERVER=woodpecker-server:9000 - WOODPECKER_SECRET=${WOODPECKER_SECRET} - WOODPECKER_MAX_PROCS=2 + +volumes: + woodpecker-server-data: diff --git a/docker/Dockerfile.agent b/release/docker/Dockerfile.agent similarity index 100% rename from docker/Dockerfile.agent rename to release/docker/Dockerfile.agent diff --git a/docker/Dockerfile.agent.alpine b/release/docker/Dockerfile.agent.alpine similarity index 100% rename from docker/Dockerfile.agent.alpine rename to release/docker/Dockerfile.agent.alpine diff --git a/docker/Dockerfile.cli b/release/docker/Dockerfile.cli similarity index 100% rename from docker/Dockerfile.cli rename to release/docker/Dockerfile.cli diff --git a/docker/Dockerfile.cli.alpine b/release/docker/Dockerfile.cli.alpine similarity index 100% rename from docker/Dockerfile.cli.alpine rename to release/docker/Dockerfile.cli.alpine diff --git a/docker/Dockerfile.kaniko-builder b/release/docker/Dockerfile.kaniko-builder similarity index 100% rename from docker/Dockerfile.kaniko-builder rename to release/docker/Dockerfile.kaniko-builder diff --git a/docker/Dockerfile.server b/release/docker/Dockerfile.server similarity index 100% rename from docker/Dockerfile.server rename to release/docker/Dockerfile.server diff --git a/docker/Dockerfile.server.alpine b/release/docker/Dockerfile.server.alpine similarity index 100% rename from docker/Dockerfile.server.alpine rename to release/docker/Dockerfile.server.alpine diff --git a/release/nfpm-agent.yml b/release/nfpm-agent.yml new file mode 100644 index 0000000000..cff9e6bc84 --- /dev/null +++ b/release/nfpm-agent.yml @@ -0,0 +1,19 @@ +name: woodpecker-agent +arch: amd64 +platform: linux +version: v${WOODPECKER_VERSION} +description: Woodpecker Agent +homepage: https://github.com/woodpecker-ci/woodpecker +license: Apache 2.0 +contents: +- src: ./dist/agent/linux_amd64/woodpecker-agent + dst: /usr/local/bin/woodpecker-agent +# overrides: +# rpm: +# scripts: +# preinstall: ./scripts/preinstall.sh +# postremove: ./scripts/postremove.sh +# deb: +# scripts: +# postinstall: ./scripts/postinstall.sh +# preremove: ./scripts/preremove.sh diff --git a/release/nfpm-cli.yml b/release/nfpm-cli.yml new file mode 100644 index 0000000000..ab773510f5 --- /dev/null +++ b/release/nfpm-cli.yml @@ -0,0 +1,19 @@ +name: woodpecker-cli +arch: amd64 +platform: linux +version: v${WOODPECKER_VERSION} +description: Woodpecker CLI +homepage: https://github.com/woodpecker-ci/woodpecker +license: Apache 2.0 +contents: +- src: ./dist/cli/linux_amd64/woodpecker-cli + dst: /usr/local/bin/woodpecker +# overrides: +# rpm: +# scripts: +# preinstall: ./scripts/preinstall.sh +# postremove: ./scripts/postremove.sh +# deb: +# scripts: +# postinstall: ./scripts/postinstall.sh +# preremove: ./scripts/preremove.sh diff --git a/release/nfpm-server.yml b/release/nfpm-server.yml new file mode 100644 index 0000000000..4f540476ee --- /dev/null +++ b/release/nfpm-server.yml @@ -0,0 +1,19 @@ +name: woodpecker-server +arch: amd64 +platform: linux +version: v${WOODPECKER_VERSION} +description: Woodpecker Server +homepage: https://github.com/woodpecker-ci/woodpecker +license: Apache 2.0 +contents: +- src: ./dist/server/linux_amd64/woodpecker-server + dst: /usr/local/bin/woodpecker-server +# overrides: +# rpm: +# scripts: +# preinstall: ./scripts/preinstall.sh +# postremove: ./scripts/postremove.sh +# deb: +# scripts: +# postinstall: ./scripts/postinstall.sh +# preremove: ./scripts/preremove.sh diff --git a/tools.go b/tools.go index d26da35630..c11ff77249 100644 --- a/tools.go +++ b/tools.go @@ -1,7 +1,7 @@ //go:build tools // +build tools -// this file make sure tools are vendored too +// this file makes sure tools are vendored too package tools import ( From 53935757c650ac6e3162d0a0387e2e37cfa05de2 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 31 Aug 2021 12:15:26 +0200 Subject: [PATCH 62/73] add helm release --- .woodpecker/helm.yml | 24 ++++++++++++++++++++++++ charts/woodpecker-agent/Chart.yaml | 6 +++--- charts/woodpecker-server/Chart.yaml | 6 +++--- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 .woodpecker/helm.yml diff --git a/.woodpecker/helm.yml b/.woodpecker/helm.yml new file mode 100644 index 0000000000..d0992fd548 --- /dev/null +++ b/.woodpecker/helm.yml @@ -0,0 +1,24 @@ +clone: + git: + image: plugins/git:next + +pipeline: + release: + image: quay.io/helmpack/chart-releaser:v1.2.1 + environment: + - CR_OWNER=myaccount + - CR_GIT_REPO=helm-charts + - CR_PACKAGE_PATH=.deploy + - CR_TOKEN="123456789" + commands: + - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-agent/Chart.yaml + - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-server/Chart.yaml + - cat charts/woodpecker-agent/Chart.yaml + - cat charts/woodpecker-server/Chart.yaml + - cr upload --owner woodpecker-bot --git-repo helm-charts --package-path .deploy --token 123456789 + when: + event: tag + +# TODO +# depends_on: +# - release diff --git a/charts/woodpecker-agent/Chart.yaml b/charts/woodpecker-agent/Chart.yaml index 0074801159..f16afdbad4 100644 --- a/charts/woodpecker-agent/Chart.yaml +++ b/charts/woodpecker-agent/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 name: woodpecker-agent -description: A Helm chart for Woodpecker, a fork of the Drone CI system +description: A Helm chart for the Woodpecker agent type: application -version: 0.1.1 -appVersion: "v0.13.0-rc.3" +version: +appVersion: "" keywords: - continuous-delivery - continuous-deployment diff --git a/charts/woodpecker-server/Chart.yaml b/charts/woodpecker-server/Chart.yaml index b83a1b3a7f..fd38ed8063 100644 --- a/charts/woodpecker-server/Chart.yaml +++ b/charts/woodpecker-server/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 name: woodpecker-server -description: A Helm chart for Woodpecker a fork of the Drone CI system +description: A Helm chart for the Woodpecker server type: application -version: 0.1.0 -appVersion: "v0.13.0-rc.3" +version: +appVersion: "" keywords: - continuous-delivery - continuous-deployment From 5bf41786cb5b1a98742d0aacd6d1f76bcde1fe88 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 31 Aug 2021 12:39:05 +0200 Subject: [PATCH 63/73] fix helm release --- .goreleaser.yml | 39 --------------------------------------- .woodpecker/helm.yml | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 48 deletions(-) delete mode 100644 .goreleaser.yml diff --git a/.goreleaser.yml b/.goreleaser.yml deleted file mode 100644 index 00c5d8bd1b..0000000000 --- a/.goreleaser.yml +++ /dev/null @@ -1,39 +0,0 @@ -changelog: - skip: true -nfpms: - - id: server - package_name: server - builds: - - server - file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - homepage: https://github.com/woodpecker-ci/woodpecker - license: Apache 2.0 - formats: - - apk - - deb - - rpm - meta: true - - id: agent - package_name: agent - builds: - - agent - file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - homepage: https://github.com/woodpecker-ci/woodpecker - license: Apache 2.0 - formats: - - apk - - deb - - rpm - meta: true - - id: cli - package_name: cli - builds: - - cli - file_name_template: "{{ .ProjectName }}-{{ .PackageName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}" - homepage: https://github.com/woodpecker-ci/woodpecker - license: Apache 2.0 - formats: - - apk - - deb - - rpm - meta: true diff --git a/.woodpecker/helm.yml b/.woodpecker/helm.yml index d0992fd548..fe6298e19a 100644 --- a/.woodpecker/helm.yml +++ b/.woodpecker/helm.yml @@ -5,20 +5,21 @@ clone: pipeline: release: image: quay.io/helmpack/chart-releaser:v1.2.1 - environment: - - CR_OWNER=myaccount - - CR_GIT_REPO=helm-charts - - CR_PACKAGE_PATH=.deploy - - CR_TOKEN="123456789" + secrets: + - source: github_token + target: CR_TOKEN commands: - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-agent/Chart.yaml - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-server/Chart.yaml - cat charts/woodpecker-agent/Chart.yaml - cat charts/woodpecker-server/Chart.yaml - - cr upload --owner woodpecker-bot --git-repo helm-charts --package-path .deploy --token 123456789 + - mkdir -p .cr-index + - cr package charts/woodpecker-server + - cr package charts/woodpecker-agent + - cr upload --owner woodpecker-ci --git-repo woodpecker-ci.github.io --release-name-template "helm-{{ .Name }}-{{ .Version }}" + - cr index --owner woodpecker-ci --git-repo woodpecker-ci.github.io --pages-branch main --charts-repo https://woodpecker-ci.github.io --push --release-name-template "helm-{{ .Name }}-{{ .Version }}" when: event: tag -# TODO -# depends_on: -# - release +depends_on: + - release From d24d8d92bbf70aa4ebdd988bcfdd6711401e7de2 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 31 Aug 2021 15:15:43 +0200 Subject: [PATCH 64/73] remove unused ci file --- cncd/pipeline/.drone.yml | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 cncd/pipeline/.drone.yml diff --git a/cncd/pipeline/.drone.yml b/cncd/pipeline/.drone.yml deleted file mode 100644 index 89da6f4348..0000000000 --- a/cncd/pipeline/.drone.yml +++ /dev/null @@ -1,15 +0,0 @@ -workspace: - base: /go - path: src/github.com/woodpecker-ci/woodpecker/cncd/pipeline - -pipeline: - install: - image: golang:1.8 - commands: - - go install github.com/woodpecker-ci/woodpecker/cncd/pipeline/pipec - - go install github.com/woodpecker-ci/woodpecker/cncd/pipeline/piped - - test: - image: golang:1.8 - commands: - - go test -cover -timeout 30s github.com/woodpecker-ci/woodpecker/cncd/pipeline/... From 6a45f5535b97359cf52d716b50d5d10ba761b651 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Wed, 1 Sep 2021 18:05:36 +0200 Subject: [PATCH 65/73] update --- .woodpecker/release.yml | 5 ++--- BUILDING | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 BUILDING diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml index 85de1d1067..af64095ab7 100644 --- a/.woodpecker/release.yml +++ b/.woodpecker/release.yml @@ -107,6 +107,5 @@ pipeline: when: event: tag -# TODO -# depends_on: -# - test +depends_on: + - test diff --git a/BUILDING b/BUILDING new file mode 100644 index 0000000000..23adc4dcdb --- /dev/null +++ b/BUILDING @@ -0,0 +1,20 @@ +1. Install go 1.9 or later +2. Execute `make deps` to download dependencies +3. Execute `make install` to compile project and install binaries to `GOPATH` + +--- + +0. To generate SQL files + +go get github.com/vektra/mockery/.../ + +export download_url=$(curl -s https://api.github.com/repos/go-swagger/go-swagger/releases/latest | \ + jq -r '.assets[] | select(.name | contains("'"$(uname | tr '[:upper:]' '[:lower:]')"'_amd64")) | .browser_download_url') +curl -o swagger -L'#' "$download_url" +chmod +x swagger +sudo mv swagger /usr/local/bin + +go get github.com/woodpecker-ci/togo + +go generate + From a6ef381ee482fb5c2cbf74a8aa43248d9c76d4a9 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Wed, 1 Sep 2021 18:12:08 +0200 Subject: [PATCH 66/73] cleanup changes --- Makefile | 20 ++++++++++---------- docker-compose.example.yml | 4 ++-- release/nfpm-agent.yml | 9 --------- release/nfpm-cli.yml | 9 --------- release/nfpm-server.yml | 9 --------- 5 files changed, 12 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 29358ba6d2..f0facd2a4e 100644 --- a/Makefile +++ b/Makefile @@ -58,17 +58,23 @@ test: test-lib test-agent test-server build-agent: $(DOCKER_RUN) go build -o dist/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent -build-frontend: - (cd web/; yarn install; yarn run build) - build-server: build-frontend $(DOCKER_RUN) go build -o dist/woodpecker-server github.com/woodpecker-ci/woodpecker/cmd/drone-server +build-frontend: + (cd web/; yarn install; yarn run build) + build-cli: $(DOCKER_RUN) go build -o dist/woodpecker-cli github.com/woodpecker-ci/woodpecker/cmd/drone-server build: build-agent build-server build-cli +release-agent: + # compile + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_amd64/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent + # tar binary files + tar -cvzf dist/woodpecker-agent_linux_amd64.tar.gz -C dist/agent/linux_amd64 woodpecker-agent + release-frontend: build-frontend (cd web/; go generate ./...) @@ -78,12 +84,6 @@ release-server: release-frontend # tar binary files tar -cvzf dist/woodpecker-server_linux_amd64.tar.gz -C dist/server/linux_amd64 woodpecker-server -release-agent: - # compile - GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_amd64/woodpecker-agent github.com/woodpecker-ci/woodpecker/cmd/drone-agent - # tar binary files - tar -cvzf dist/woodpecker-agent_linux_amd64.tar.gz -C dist/agent/linux_amd64 woodpecker-agent - release-cli: # compile GOOS=linux GOARCH=amd64 go build -ldflags '${LDFLAGS_CLI}' -o dist/cli/linux_amd64/woodpecker-cli github.com/woodpecker-ci/woodpecker/cli/drone @@ -104,7 +104,7 @@ release-checksums: # generate shas for tar files (cd dist/; sha256sum *.{tar.gz,apk,deb,rpm} > checksums.txt) -release: release-server release-agent release-cli release-checksums +release: release-server release-agent release-cli .PHONY: version version: diff --git a/docker-compose.example.yml b/docker-compose.example.yml index 302513afd6..bfe03ab201 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -2,7 +2,7 @@ version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:next + image: woodpeckerci/woodpecker-server:latest ports: - 8000:8000 volumes: @@ -16,7 +16,7 @@ services: - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:next + image: woodpeckerci/woodpecker-agent:latest depends_on: - woodpecker-server volumes: diff --git a/release/nfpm-agent.yml b/release/nfpm-agent.yml index cff9e6bc84..b53bdc8b5a 100644 --- a/release/nfpm-agent.yml +++ b/release/nfpm-agent.yml @@ -8,12 +8,3 @@ license: Apache 2.0 contents: - src: ./dist/agent/linux_amd64/woodpecker-agent dst: /usr/local/bin/woodpecker-agent -# overrides: -# rpm: -# scripts: -# preinstall: ./scripts/preinstall.sh -# postremove: ./scripts/postremove.sh -# deb: -# scripts: -# postinstall: ./scripts/postinstall.sh -# preremove: ./scripts/preremove.sh diff --git a/release/nfpm-cli.yml b/release/nfpm-cli.yml index ab773510f5..fee346a36c 100644 --- a/release/nfpm-cli.yml +++ b/release/nfpm-cli.yml @@ -8,12 +8,3 @@ license: Apache 2.0 contents: - src: ./dist/cli/linux_amd64/woodpecker-cli dst: /usr/local/bin/woodpecker -# overrides: -# rpm: -# scripts: -# preinstall: ./scripts/preinstall.sh -# postremove: ./scripts/postremove.sh -# deb: -# scripts: -# postinstall: ./scripts/postinstall.sh -# preremove: ./scripts/preremove.sh diff --git a/release/nfpm-server.yml b/release/nfpm-server.yml index 4f540476ee..08cb4bced3 100644 --- a/release/nfpm-server.yml +++ b/release/nfpm-server.yml @@ -8,12 +8,3 @@ license: Apache 2.0 contents: - src: ./dist/server/linux_amd64/woodpecker-server dst: /usr/local/bin/woodpecker-server -# overrides: -# rpm: -# scripts: -# preinstall: ./scripts/preinstall.sh -# postremove: ./scripts/postremove.sh -# deb: -# scripts: -# postinstall: ./scripts/postinstall.sh -# preremove: ./scripts/preremove.sh From 0c5ea22a38959ba3a15ce7f43ccf9397f1abb639 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Sat, 11 Sep 2021 19:46:32 +0200 Subject: [PATCH 67/73] remove helm changes --- .woodpecker/helm.yml | 25 ------------------------- charts/woodpecker-agent/Chart.yaml | 6 +++--- charts/woodpecker-server/Chart.yaml | 6 +++--- 3 files changed, 6 insertions(+), 31 deletions(-) delete mode 100644 .woodpecker/helm.yml diff --git a/.woodpecker/helm.yml b/.woodpecker/helm.yml deleted file mode 100644 index fe6298e19a..0000000000 --- a/.woodpecker/helm.yml +++ /dev/null @@ -1,25 +0,0 @@ -clone: - git: - image: plugins/git:next - -pipeline: - release: - image: quay.io/helmpack/chart-releaser:v1.2.1 - secrets: - - source: github_token - target: CR_TOKEN - commands: - - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-agent/Chart.yaml - - sed -i "s//${DRONE_TAG##v}/g" charts/woodpecker-server/Chart.yaml - - cat charts/woodpecker-agent/Chart.yaml - - cat charts/woodpecker-server/Chart.yaml - - mkdir -p .cr-index - - cr package charts/woodpecker-server - - cr package charts/woodpecker-agent - - cr upload --owner woodpecker-ci --git-repo woodpecker-ci.github.io --release-name-template "helm-{{ .Name }}-{{ .Version }}" - - cr index --owner woodpecker-ci --git-repo woodpecker-ci.github.io --pages-branch main --charts-repo https://woodpecker-ci.github.io --push --release-name-template "helm-{{ .Name }}-{{ .Version }}" - when: - event: tag - -depends_on: - - release diff --git a/charts/woodpecker-agent/Chart.yaml b/charts/woodpecker-agent/Chart.yaml index f16afdbad4..0074801159 100644 --- a/charts/woodpecker-agent/Chart.yaml +++ b/charts/woodpecker-agent/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 name: woodpecker-agent -description: A Helm chart for the Woodpecker agent +description: A Helm chart for Woodpecker, a fork of the Drone CI system type: application -version: -appVersion: "" +version: 0.1.1 +appVersion: "v0.13.0-rc.3" keywords: - continuous-delivery - continuous-deployment diff --git a/charts/woodpecker-server/Chart.yaml b/charts/woodpecker-server/Chart.yaml index fd38ed8063..b83a1b3a7f 100644 --- a/charts/woodpecker-server/Chart.yaml +++ b/charts/woodpecker-server/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 name: woodpecker-server -description: A Helm chart for the Woodpecker server +description: A Helm chart for Woodpecker a fork of the Drone CI system type: application -version: -appVersion: "" +version: 0.1.0 +appVersion: "v0.13.0-rc.3" keywords: - continuous-delivery - continuous-deployment From 8d52ec947ccce4ab19ffc8d04bc564b952bc7a52 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Thu, 23 Sep 2021 18:08:54 +0200 Subject: [PATCH 68/73] undo change --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c6ff1c547f..0f76071ba2 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,7 @@ *.out ### Frontend ### -node_modules +web/node_modules web/dist/files web/*.log web/.env From aea8805447f22a0b53c66706e55be8613214b2b8 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Mon, 4 Oct 2021 17:45:42 +0200 Subject: [PATCH 69/73] remove old command --- .woodpecker/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index aec3fa70c6..4a42418c00 100644 --- a/.woodpecker/main.yml +++ b/.woodpecker/main.yml @@ -46,8 +46,6 @@ pipeline: build: image: golang:1.16 commands: - - go get github.com/woodpecker-ci/togo - - (cd web/; go generate ./...) - make release build-cli: From fe2fb1f5ababdaa56e80214a99fb2372ca5bb78e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Mon, 4 Oct 2021 17:52:36 +0200 Subject: [PATCH 70/73] merge flows --- .woodpecker/main.yml | 158 ------------------ .woodpecker/release.yml | 113 +++++++++++-- .woodpecker/scripts/build-docker-image.sh | 2 +- {release/docker => docker}/Dockerfile.cli | 0 .../docker => docker}/Dockerfile.cli.alpine | 0 .../Dockerfile.kaniko-builder | 0 {release => nfpm}/nfpm-agent.yml | 0 {release => nfpm}/nfpm-cli.yml | 0 {release => nfpm}/nfpm-server.yml | 0 release/docker/Dockerfile.agent | 14 -- release/docker/Dockerfile.agent.alpine | 16 -- release/docker/Dockerfile.server | 18 -- release/docker/Dockerfile.server.alpine | 20 --- 13 files changed, 101 insertions(+), 240 deletions(-) delete mode 100644 .woodpecker/main.yml rename {release/docker => docker}/Dockerfile.cli (100%) rename {release/docker => docker}/Dockerfile.cli.alpine (100%) rename {release/docker => docker}/Dockerfile.kaniko-builder (100%) rename {release => nfpm}/nfpm-agent.yml (100%) rename {release => nfpm}/nfpm-cli.yml (100%) rename {release => nfpm}/nfpm-server.yml (100%) delete mode 100644 release/docker/Dockerfile.agent delete mode 100644 release/docker/Dockerfile.agent.alpine delete mode 100644 release/docker/Dockerfile.server delete mode 100644 release/docker/Dockerfile.server.alpine diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml deleted file mode 100644 index 4a42418c00..0000000000 --- a/.woodpecker/main.yml +++ /dev/null @@ -1,158 +0,0 @@ -clone: - git: - image: plugins/git:next - -pipeline: - test: - image: golang:1.16 - group: test - commands: - - make test - - make vet - - make formatcheck - - test-frontend: - image: node:10.17.0-stretch - group: test - commands: - - (cd web/; yarn install) - - (cd web/; yarn run lesshint) - - (cd web/; yarn run lint --quiet) - - make test-frontend - - test-postgres: - image: golang:1.16 - group: db-test - environment: - - WOODPECKER_DATABASE_DRIVER=postgres - - WOODPECKER_DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore - - test-mysql: - image: golang:1.16 - group: db-test - environment: - - WOODPECKER_DATABASE_DRIVER=mysql - - WOODPECKER_DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore - - build-frontend: - image: node:10.17.0-stretch - commands: - - make build-frontend - - build: - image: golang:1.16 - commands: - - make release - - build-cli: - image: golang:1.16 - commands: make release-cli - - publish-server: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - dockerfile: docker/Dockerfile.server - secrets: [docker_username, docker_password] - # TODO: only release as next after 0.15.0 got released - tag: [next, latest] - when: - branch: master - event: push - - publish-server-alpine: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - dockerfile: docker/Dockerfile.server.alpine - secrets: [ docker_username, docker_password ] - # TODO: only release as next-alpine after 0.15.0 got released - tag: [next-alpine, latest-alpine] - when: - branch: master - event: push - - publish-agent: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: docker/Dockerfile.agent - secrets: [docker_username, docker_password] - # TODO: only release as next after 0.15.0 got released - tag: [next, latest] - when: - branch: master - event: push - - publish-agent-alpine: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: docker/Dockerfile.agent.alpine - secrets: [ docker_username, docker_password ] - # TODO: only release as next-alpine after 0.15.0 got released - tag: [next-alpine, latest-alpine] - when: - branch: master - event: push - - release-server: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - dockerfile: docker/Dockerfile.server - secrets: [docker_username, docker_password] - tag: [latest, "${DRONE_TAG}"] - when: - event: tag - - release-server-alpine: - image: plugins/docker - repo: woodpeckerci/woodpecker-server - dockerfile: docker/Dockerfile.server.alpine - secrets: [ docker_username, docker_password ] - tag: [latest-alpine, "${DRONE_TAG}-alpine"] - when: - event: tag - - release-agent: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: docker/Dockerfile.agent - secrets: [docker_username, docker_password] - tag: [latest, "${DRONE_TAG}"] - when: - event: tag - - release-agent-alpine: - image: plugins/docker - repo: woodpeckerci/woodpecker-agent - dockerfile: docker/Dockerfile.agent.alpine - secrets: [ docker_username, docker_password ] - tag: [latest-alpine, "${DRONE_TAG}-alpine"] - when: - event: tag - - release-cli: - image: plugins/github-release - files: - - cli/release/woodpecker_*.tar.gz - - cli/release/woodpecker_checksums.txt - secrets: - - source: github_token - target: github_release_api_key - when: - event: tag - -services: - postgres: - image: postgres:9.6 - ports: ["5432"] - environment: - - POSTGRES_USER=postgres - - POSTGRES_HOST_AUTH_METHOD=trust - mysql: - image: mysql:5.6.27 - ports: ["3306"] - environment: - - MYSQL_DATABASE=test - - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml index af64095ab7..b653081758 100644 --- a/.woodpecker/release.yml +++ b/.woodpecker/release.yml @@ -6,11 +6,98 @@ pipeline: build: image: golang:1.16 commands: - - go mod tidy - make release - when: - event: [push, tag] - branch: master + + # publish-server: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-server + # dockerfile: docker/Dockerfile.server + # secrets: [docker_username, docker_password] + # # TODO: only release as next after 0.15.0 got released + # tag: [next, latest] + # when: + # branch: master + # event: push + + # publish-server-alpine: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-server + # dockerfile: docker/Dockerfile.server.alpine + # secrets: [ docker_username, docker_password ] + # # TODO: only release as next-alpine after 0.15.0 got released + # tag: [next-alpine, latest-alpine] + # when: + # branch: master + # event: push + + # publish-agent: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-agent + # dockerfile: docker/Dockerfile.agent + # secrets: [docker_username, docker_password] + # # TODO: only release as next after 0.15.0 got released + # tag: [next, latest] + # when: + # branch: master + # event: push + + # publish-agent-alpine: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-agent + # dockerfile: docker/Dockerfile.agent.alpine + # secrets: [ docker_username, docker_password ] + # # TODO: only release as next-alpine after 0.15.0 got released + # tag: [next-alpine, latest-alpine] + # when: + # branch: master + # event: push + + # release-server: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-server + # dockerfile: docker/Dockerfile.server + # secrets: [docker_username, docker_password] + # tag: [latest, "${DRONE_TAG}"] + # when: + # event: tag + + # release-server-alpine: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-server + # dockerfile: docker/Dockerfile.server.alpine + # secrets: [ docker_username, docker_password ] + # tag: [latest-alpine, "${DRONE_TAG}-alpine"] + # when: + # event: tag + + # release-agent: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-agent + # dockerfile: docker/Dockerfile.agent + # secrets: [docker_username, docker_password] + # tag: [latest, "${DRONE_TAG}"] + # when: + # event: tag + + # release-agent-alpine: + # image: plugins/docker + # repo: woodpeckerci/woodpecker-agent + # dockerfile: docker/Dockerfile.agent.alpine + # secrets: [ docker_username, docker_password ] + # tag: [latest-alpine, "${DRONE_TAG}-alpine"] + # when: + # event: tag + + # release-cli: + # image: plugins/github-release + # files: + # - cli/release/woodpecker_*.tar.gz + # - cli/release/woodpecker_checksums.txt + # secrets: + # - source: github_token + # target: github_release_api_key + # when: + # event: tag build-docker-server: group: build-docker @@ -56,15 +143,15 @@ pipeline: image: golang:1.16 commands: - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v1.10.3 - - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager apk - - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager deb - - nfpm package --config ./release/nfpm-server.yml --target ./dist --packager rpm - - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager apk - - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager deb - - nfpm package --config ./release/nfpm-agent.yml --target ./dist --packager rpm - - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager apk - - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager deb - - nfpm package --config ./release/nfpm-cli.yml --target ./dist --packager rpm + - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager apk + - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager deb + - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager rpm + - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager apk + - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager deb + - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager rpm + - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager apk + - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager deb + - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager rpm when: event: [push, tag] branch: master diff --git a/.woodpecker/scripts/build-docker-image.sh b/.woodpecker/scripts/build-docker-image.sh index c9722c01f8..f0841f541d 100755 --- a/.woodpecker/scripts/build-docker-image.sh +++ b/.woodpecker/scripts/build-docker-image.sh @@ -6,7 +6,7 @@ REGISTRY="docker.io" IMAGE="woodpeckerci/woodpecker-$IMAGE_TYPE" PATH_BINARY="./dist/${IMAGE_TYPE}_linux_amd64/woodpecker-$IMAGE_TYPE" PATH_CONTEXT="./dist/docker-woodpecker-$IMAGE_TYPE" -PATH_DOCKERFILE="./release/docker/Dockerfile.$IMAGE_TYPE" +PATH_DOCKERFILE="./docker/Dockerfile.$IMAGE_TYPE" echo "Building $IMAGE_TYPE => $IMAGE:$WOODPECKER_VERSION ..." diff --git a/release/docker/Dockerfile.cli b/docker/Dockerfile.cli similarity index 100% rename from release/docker/Dockerfile.cli rename to docker/Dockerfile.cli diff --git a/release/docker/Dockerfile.cli.alpine b/docker/Dockerfile.cli.alpine similarity index 100% rename from release/docker/Dockerfile.cli.alpine rename to docker/Dockerfile.cli.alpine diff --git a/release/docker/Dockerfile.kaniko-builder b/docker/Dockerfile.kaniko-builder similarity index 100% rename from release/docker/Dockerfile.kaniko-builder rename to docker/Dockerfile.kaniko-builder diff --git a/release/nfpm-agent.yml b/nfpm/nfpm-agent.yml similarity index 100% rename from release/nfpm-agent.yml rename to nfpm/nfpm-agent.yml diff --git a/release/nfpm-cli.yml b/nfpm/nfpm-cli.yml similarity index 100% rename from release/nfpm-cli.yml rename to nfpm/nfpm-cli.yml diff --git a/release/nfpm-server.yml b/nfpm/nfpm-server.yml similarity index 100% rename from release/nfpm-server.yml rename to nfpm/nfpm-server.yml diff --git a/release/docker/Dockerfile.agent b/release/docker/Dockerfile.agent deleted file mode 100644 index 82c886ad92..0000000000 --- a/release/docker/Dockerfile.agent +++ /dev/null @@ -1,14 +0,0 @@ -# use golang image to copy ssl certs later -FROM golang:1.16 - -FROM scratch -ENV GODEBUG=netdns=go -EXPOSE 3000 -HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] - -# copy certs from golang:1.16 image -COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt - -ADD ./woodpecker-agent /bin/ - -ENTRYPOINT ["/bin/woodpecker-agent"] diff --git a/release/docker/Dockerfile.agent.alpine b/release/docker/Dockerfile.agent.alpine deleted file mode 100644 index 2da15f44fc..0000000000 --- a/release/docker/Dockerfile.agent.alpine +++ /dev/null @@ -1,16 +0,0 @@ -<<<<<<< HEAD:release/docker/Dockerfile.agent.alpine -FROM alpine:3.14.1 -======= -# docker build --rm -f docker/Dockerfile.agent.alpine -t woodpeckerci/woodpecker-agent . ->>>>>>> upstream/master:docker/Dockerfile.agent.alpine - -FROM alpine:3.14 -RUN apk add -U --no-cache ca-certificates - -ENV GODEBUG=netdns=go -ADD ./woodpecker-agent /bin/ - -EXPOSE 3000 -HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] - -ENTRYPOINT ["/bin/woodpecker-agent"] diff --git a/release/docker/Dockerfile.server b/release/docker/Dockerfile.server deleted file mode 100644 index a9ad6a9c12..0000000000 --- a/release/docker/Dockerfile.server +++ /dev/null @@ -1,18 +0,0 @@ -# use golang image to copy ssl certs later -FROM golang:1.16 - -FROM scratch -EXPOSE 8000 9000 80 443 - -ENV GODEBUG=netdns=go -ENV XDG_CACHE_HOME=/var/lib/drone -ENV WOODPECKER_DATABASE_DRIVER=sqlite3 -ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite - - -# copy certs from golang:1.16 image -COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt - -ADD ./woodpecker-server /bin/ - -ENTRYPOINT ["/bin/woodpecker-server"] diff --git a/release/docker/Dockerfile.server.alpine b/release/docker/Dockerfile.server.alpine deleted file mode 100644 index df5c323c82..0000000000 --- a/release/docker/Dockerfile.server.alpine +++ /dev/null @@ -1,20 +0,0 @@ -<<<<<<< HEAD:release/docker/Dockerfile.server.alpine -FROM alpine:3.14.1 -EXPOSE 8000 9000 80 443 -======= -# docker build --rm -f docker/Dockerfile.server.alpine -t woodpeckerci/woodpecker-server . ->>>>>>> upstream/master:docker/Dockerfile.server.alpine - -FROM alpine:3.14 -RUN apk add -U --no-cache ca-certificates - -EXPOSE 8000 9000 80 443 - -ENV GODEBUG=netdns=go -ENV XDG_CACHE_HOME=/var/lib/drone -ENV WOODPECKER_DATABASE_DRIVER=sqlite3 -ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite - -ADD ./woodpecker-server /bin/ - -ENTRYPOINT ["/bin/woodpecker-server"] From 9cefae44aa5655e6d7357a3d31bb628a42c71fc6 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Mon, 4 Oct 2021 22:28:55 +0200 Subject: [PATCH 71/73] remove unrelated changes --- .woodpecker/{release.yml => main.yml} | 50 ++++++++++++++++++++++++- .woodpecker/test.yml | 53 --------------------------- docker-compose.example.yml | 17 +++++---- tools.go | 2 +- 4 files changed, 58 insertions(+), 64 deletions(-) rename .woodpecker/{release.yml => main.yml} (73%) delete mode 100644 .woodpecker/test.yml diff --git a/.woodpecker/release.yml b/.woodpecker/main.yml similarity index 73% rename from .woodpecker/release.yml rename to .woodpecker/main.yml index a13cb72f6b..a606e7b223 100644 --- a/.woodpecker/release.yml +++ b/.woodpecker/main.yml @@ -3,6 +3,41 @@ clone: image: plugins/git:next pipeline: + test: + image: golang:1.16 + group: test + commands: + - make test + - make vet + - make formatcheck + + test-frontend: + image: node:10.17.0-stretch + group: test + commands: + - (cd web/; yarn install) + - (cd web/; yarn run lesshint) + - (cd web/; yarn run lint --quiet) + - make test-frontend + + test-postgres: + image: golang:1.16 + group: db-test + environment: + - WOODPECKER_DATABASE_DRIVER=postgres + - WOODPECKER_DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore + + test-mysql: + image: golang:1.16 + group: db-test + environment: + - WOODPECKER_DATABASE_DRIVER=mysql + - WOODPECKER_DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true + commands: + - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore + build-frontend: image: node:10.17.0-stretch commands: @@ -121,5 +156,16 @@ pipeline: when: event: tag -depends_on: - - test +services: + postgres: + image: postgres:9.6 + ports: ["5432"] + environment: + - POSTGRES_USER=postgres + - POSTGRES_HOST_AUTH_METHOD=trust + mysql: + image: mysql:5.6.27 + ports: ["3306"] + environment: + - MYSQL_DATABASE=test + - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/.woodpecker/test.yml b/.woodpecker/test.yml deleted file mode 100644 index 638df1cae7..0000000000 --- a/.woodpecker/test.yml +++ /dev/null @@ -1,53 +0,0 @@ -clone: - git: - image: plugins/git:next - -pipeline: - test: - image: golang:1.16 - group: test - commands: - - make test - - make vet - - make formatcheck - - test-frontend: - image: node:10.17.0-stretch - group: test - commands: - - (cd web/; yarn install) - - (cd web/; yarn run lesshint) - - (cd web/; yarn run lint --quiet) - - make test-frontend - - test-postgres: - image: golang:1.16 - group: db-test - environment: - - WOODPECKER_DATABASE_DRIVER=postgres - - WOODPECKER_DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore - - test-mysql: - image: golang:1.16 - group: db-test - environment: - - WOODPECKER_DATABASE_DRIVER=mysql - - WOODPECKER_DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true - commands: - - go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore - -services: - postgres: - image: postgres:9.6 - ports: ["5432"] - environment: - - POSTGRES_USER=postgres - - POSTGRES_HOST_AUTH_METHOD=trust - mysql: - image: mysql:5.6.27 - ports: ["3306"] - environment: - - MYSQL_DATABASE=test - - MYSQL_ALLOW_EMPTY_PASSWORD=yes diff --git a/docker-compose.example.yml b/docker-compose.example.yml index d177180816..5bc78969a4 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -2,11 +2,14 @@ version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + build: + context: . + dockerfile: Dockerfile + image: woodpeckerci/woodpecker-server:local ports: - 8000:8000 volumes: - - woodpecker-server-data:/var/lib/drone/ + - /var/lib/drone:/var/lib/drone/ environment: - WOODPECKER_OPEN=true - WOODPECKER_ADMIN=laszlocph @@ -16,15 +19,13 @@ services: - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - depends_on: - - woodpecker-server + build: + context: . + dockerfile: Dockerfile.agent + image: woodpeckerci/woodpecker-agent:local volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - WOODPECKER_SERVER=woodpecker-server:9000 - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} - WOODPECKER_MAX_PROCS=2 - -volumes: - woodpecker-server-data: diff --git a/tools.go b/tools.go index 81832551a9..adb85cf431 100644 --- a/tools.go +++ b/tools.go @@ -1,7 +1,7 @@ //go:build tools // +build tools -// this file makes sure tools are vendored too +// this file make sure tools are vendored too package tools import ( From c45d17672026d7a0d22c2e47ca7ef3cf2d3597ec Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Mon, 4 Oct 2021 22:41:14 +0200 Subject: [PATCH 72/73] remove more unrelated changes --- .woodpecker/main.yml | 41 +++------------------------------ docker/Dockerfile.server.alpine | 2 +- nfpm/nfpm-agent.yml | 10 -------- nfpm/nfpm-cli.yml | 10 -------- nfpm/nfpm-server.yml | 10 -------- 5 files changed, 4 insertions(+), 69 deletions(-) delete mode 100644 nfpm/nfpm-agent.yml delete mode 100644 nfpm/nfpm-cli.yml delete mode 100644 nfpm/nfpm-server.yml diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index a606e7b223..2a8795e9fc 100644 --- a/.woodpecker/main.yml +++ b/.woodpecker/main.yml @@ -62,7 +62,7 @@ pipeline: - make release-cli build-docker-server: - group: bundle + group: docker image: anbraten/kaniko:v1.6.0-debug secrets: [docker_username, docker_password] environment: @@ -75,7 +75,7 @@ pipeline: branch: master build-docker-agent: - group: bundle + group: docker image: anbraten/kaniko:v1.6.0-debug secrets: [docker_username, docker_password] environment: @@ -88,7 +88,7 @@ pipeline: branch: master build-docker-cli: - group: bundle + group: docker image: anbraten/kaniko:v1.6.0-debug secrets: [docker_username, docker_password] environment: @@ -100,37 +100,6 @@ pipeline: event: [push, tag] branch: master - build-adk-deb-rpm: - group: bundle - image: golang:1.16 - commands: - - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v1.10.3 - - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager apk - - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager deb - - nfpm package --config ./nfpm/nfpm-server.yml --target ./dist --packager rpm - - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager apk - - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager deb - - nfpm package --config ./nfpm/nfpm-agent.yml --target ./dist --packager rpm - - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager apk - - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager deb - - nfpm package --config ./nfpm/nfpm-cli.yml --target ./dist --packager rpm - when: - event: [push, tag] - branch: master - - changelog: - image: alpine:3.14.1 - commands: - - apk add make - - curl -L https://dl.gitea.io/changelog-tool/master/changelog-master-linux-amd64 > changelog - - chmod +x ./changelog - - ./changelog -m=$(make version) generate > CHANGELOG-latest.md - - ./changelog -m=$(make version) contributors >> CHANGELOG-latest.md - - echo -e "$(cat CHANGELOG-latest.md)\n$(cat CHANGELOG.md)" > CHANGELOG.md - # TODO push changed CHANGELOG.md with woodpecker-bot - when: - event: tag - checksums: image: golang:1.16 commands: @@ -144,12 +113,8 @@ pipeline: image: plugins/github-release files: - dist/*.tar.gz - - dist/*.apk - - dist/*.deb - - dist/*.rpm - dist/checksums.txt title: ${DRONE_TAG##v} - note: CHANGELOG-latest.md secrets: - source: github_token target: github_release_api_key diff --git a/docker/Dockerfile.server.alpine b/docker/Dockerfile.server.alpine index 695dd55881..8ed6f68870 100644 --- a/docker/Dockerfile.server.alpine +++ b/docker/Dockerfile.server.alpine @@ -6,9 +6,9 @@ RUN apk add -U --no-cache ca-certificates EXPOSE 8000 9000 80 443 ENV GODEBUG=netdns=go -ENV XDG_CACHE_HOME=/var/lib/drone ENV WOODPECKER_DATABASE_DRIVER=sqlite3 ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite +ENV XDG_CACHE_HOME=/var/lib/drone ADD ./woodpecker-server /bin/ diff --git a/nfpm/nfpm-agent.yml b/nfpm/nfpm-agent.yml deleted file mode 100644 index b53bdc8b5a..0000000000 --- a/nfpm/nfpm-agent.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: woodpecker-agent -arch: amd64 -platform: linux -version: v${WOODPECKER_VERSION} -description: Woodpecker Agent -homepage: https://github.com/woodpecker-ci/woodpecker -license: Apache 2.0 -contents: -- src: ./dist/agent/linux_amd64/woodpecker-agent - dst: /usr/local/bin/woodpecker-agent diff --git a/nfpm/nfpm-cli.yml b/nfpm/nfpm-cli.yml deleted file mode 100644 index fee346a36c..0000000000 --- a/nfpm/nfpm-cli.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: woodpecker-cli -arch: amd64 -platform: linux -version: v${WOODPECKER_VERSION} -description: Woodpecker CLI -homepage: https://github.com/woodpecker-ci/woodpecker -license: Apache 2.0 -contents: -- src: ./dist/cli/linux_amd64/woodpecker-cli - dst: /usr/local/bin/woodpecker diff --git a/nfpm/nfpm-server.yml b/nfpm/nfpm-server.yml deleted file mode 100644 index 08cb4bced3..0000000000 --- a/nfpm/nfpm-server.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: woodpecker-server -arch: amd64 -platform: linux -version: v${WOODPECKER_VERSION} -description: Woodpecker Server -homepage: https://github.com/woodpecker-ci/woodpecker -license: Apache 2.0 -contents: -- src: ./dist/server/linux_amd64/woodpecker-server - dst: /usr/local/bin/woodpecker-server From bf8954d91e5f91de0d33100597b21a0262406a7c Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Mon, 4 Oct 2021 22:42:18 +0200 Subject: [PATCH 73/73] undo unrelated change --- docker/Dockerfile.server.alpine | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile.server.alpine b/docker/Dockerfile.server.alpine index 8ed6f68870..59696fe149 100644 --- a/docker/Dockerfile.server.alpine +++ b/docker/Dockerfile.server.alpine @@ -6,8 +6,8 @@ RUN apk add -U --no-cache ca-certificates EXPOSE 8000 9000 80 443 ENV GODEBUG=netdns=go -ENV WOODPECKER_DATABASE_DRIVER=sqlite3 ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite +ENV WOODPECKER_DATABASE_DRIVER=sqlite3 ENV XDG_CACHE_HOME=/var/lib/drone ADD ./woodpecker-server /bin/