steps: # use vendor to cache dependencies vendor: image: golang:1.20 commands: - go mod vendor lint: image: golangci/golangci-lint:latest group: compliant pull: true commands: - go version - go install mvdan.cc/gofumpt@latest - "[ $(gofumpt -extra -l . | wc -l) != 0 ] && { echo 'code not formated'; exit 1; }" - golangci-lint run --timeout 5m --build-tags integration editor-config: group: compliant image: mstruebing/editorconfig-checker build: group: compliant image: codeberg.org/6543/docker-images/golang_just commands: - go version - just build when: event: [ "pull_request", "push" ] docker-dryrun: group: compliant image: plugins/kaniko settings: dockerfile: Dockerfile no_push: true tags: latest when: event: [ "pull_request", "push" ] path: Dockerfile build-tag: group: compliant image: codeberg.org/6543/docker-images/golang_just commands: - go version - just build-tag ${CI_COMMIT_TAG##v} when: event: [ "tag" ] test: group: test image: codeberg.org/6543/docker-images/golang_just commands: - just test integration-tests: group: test image: codeberg.org/6543/docker-images/golang_just commands: - just integration environment: - ACME_API=https://acme.mock.directory - PAGES_DOMAIN=localhost.mock.directory - RAW_DOMAIN=raw.localhost.mock.directory - PORT=4430 release: image: plugins/gitea-release settings: base_url: https://codeberg.org file_exists: overwrite files: build/codeberg-pages-server api_key: from_secret: bot_token environment: - DRONE_REPO_OWNER=${CI_REPO_OWNER} - DRONE_REPO_NAME=${CI_REPO_NAME} - DRONE_BUILD_EVENT=${CI_BUILD_EVENT} - DRONE_COMMIT_REF=${CI_COMMIT_REF} when: event: [ "tag" ] docker-next: image: plugins/kaniko settings: registry: codeberg.org dockerfile: Dockerfile repo: codeberg.org/codeberg/pages-server tags: next username: from_secret: bot_user password: from_secret: bot_token when: event: [ "push" ] branch: ${CI_REPO_DEFAULT_BRANCH} docker-tag: image: plugins/kaniko settings: registry: codeberg.org dockerfile: Dockerfile repo: codeberg.org/codeberg/pages-server tags: [ latest, "${CI_COMMIT_TAG}" ] username: from_secret: bot_user password: from_secret: bot_token when: event: [ "tag" ]