platform: linux/amd64 when: event: [ push, tag ] variables: - &ci_verify_image 'sc.cryxtal.org/ci-img/git-curl-jq:latest' - &golang_image 'golang:1.21-bullseye' - &forgejo_test_image 'docker.io/node:20-bookworm' - &nodejs_image 'docker.io/node:20-bookworm' - &bin_dl_image 'sc.cryxtal.org/ci-img/bin-dl:latest' - &deb_build_image 'sc.cryxtal.org/ci-img/dh:bullseye' - &deb_test_image_bullseye 'sc.cryxtal.org/ci-img/deb-test:bullseye' - &deb_test_image_bookworm 'sc.cryxtal.org/ci-img/deb-test:bookworm' - &deb_test_image_buster 'sc.cryxtal.org/ci-img/deb-test:buster' - &deb_test_image_sid 'sc.cryxtal.org/ci-img/deb-test:sid' - &deb_test_image_jammy 'sc.cryxtal.org/ci-img/deb-test-ubuntu:jammy' - &deb_test_image_focal 'sc.cryxtal.org/ci-img/deb-test-ubuntu:focal' - &deb_test_image_kinetic 'sc.cryxtal.org/ci-img/deb-test-ubuntu:kinetic' - &deb_test_image_lunar 'sc.cryxtal.org/ci-img/deb-test-ubuntu:lunar' - &forgejo_test_golang_ver '1.21' - &build_submodule 'forgejo' - &goproxy_override '' - &goproxy_setup |- if [ -n "$${GOPROXY_OVERRIDE:-}" ]; then export GOPROXY="$${GOPROXY_OVERRIDE}"; echo "Using goproxy from goproxy_override \"$${GOPROXY}\""; elif [ -n "$${GOPROXY_DEFAULT:-}" ]; then export GOPROXY="$${GOPROXY_DEFAULT}"; echo "Using goproxy from goproxy_default (secret) not displaying"; else export GOPROXY="https://proxy.golang.org,direct"; echo "No goproxy overrides or defaults given, using \"$${GOPROXY}\""; fi workspace: base: /go path: src/cryxtal/forgejo-deb clone: clone-recursive: image: woodpeckerci/plugin-git settings: recursive: true steps: fetch-tags: image: *ci_verify_image pull: true commands: - git config --add safe.directory '*' - git fetch --tags --force - git submodule foreach 'git fetch --tags --force' ci-verify: image: *ci_verify_image group: deps environment: BUILD_SUBMODULE: *build_submodule commands: - ./.ci-make.sh ci-verify "$BUILD_SUBMODULE" deps-frontend: image: *nodejs_image group: deps environment: BUILD_SUBMODULE: *build_submodule commands: - ./.ci-make.sh submodule-make "$BUILD_SUBMODULE" deps-frontend deps-backend: image: *golang_image group: deps environment: BUILD_SUBMODULE: *build_submodule GOPROXY_OVERRIDE: *goproxy_override secrets: - goproxy_default commands: - *goproxy_setup - ./.ci-make.sh submodule-make "$BUILD_SUBMODULE" deps-backend tag-pre-condition: image: *ci_verify_image environment: BUILD_SUBMODULE: *build_submodule commands: - cd "$BUILD_SUBMODULE" - git update-ref refs/heads/tag_test $(git rev-parse --verify HEAD) security-check: image: *golang_image group: checks environment: BUILD_SUBMODULE: *build_submodule GOPROXY_OVERRIDE: *goproxy_override secrets: - goproxy_default commands: - *goproxy_setup - ./.ci-make.sh submodule-make "$BUILD_SUBMODULE" security-check checks-backend: image: *forgejo_test_image group: checks environment: GOPROXY_OVERRIDE: *goproxy_override DEP_GOLANG_VER: *forgejo_test_golang_ver secrets: - goproxy_default commands: - *goproxy_setup - ./.ci-make.sh forgejo-test-deps - su forgejo -c './.ci-make.sh submodule-make forgejo checks-backend' - chown -R root:root . build-frontend: image: *nodejs_image group: pre-build environment: BUILD_SUBMODULE: *build_submodule commands: - ./.ci-make.sh submodule-make "$BUILD_SUBMODULE" frontend download-bin-amd64: image: *bin_dl_image group: build-main commands: - ./.ci-make.sh download-binary forgejo-bin-dl when: event: [ tag ] build-forgejo-amd64: image: *golang_image group: build-main environment: BUILD_SUBMODULE: *build_submodule GOSUMDB: sum.golang.org TAGS: bindata GOPROXY_OVERRIDE: *goproxy_override secrets: - goproxy_default commands: - *goproxy_setup - ./.ci-make.sh submodule-build "$BUILD_SUBMODULE" forgejo-bin build-forgejo-sqlite-amd64: image: *golang_image environment: BUILD_SUBMODULE: *build_submodule GOSUMDB: sum.golang.org TAGS: bindata sqlite sqlite_unlock_notify GOPROXY_OVERRIDE: *goproxy_override secrets: - goproxy_default commands: - *goproxy_setup - ./.ci-make.sh submodule-build "$BUILD_SUBMODULE" forgejo-sqlite-bin package-bullseye: image: *deb_build_image group: package commands: - ./.ci-make.sh package-prep - ./.ci-make.sh package-build - ./.ci-make.sh package-clean package-repo: image: *deb_build_image group: package commands: - cd repo-deb - ./build.sh gen-sha256: image: *ci_verify_image commands: - ./.ci-make.sh pkg-gen-sha256 - ./.ci-make.sh preview-sha256 test-inst-bookworm: image: *deb_test_image_bookworm group: pkg-test-1 commands: - ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb test-inst-bookworm-user: image: *deb_test_image_bookworm group: pkg-test-1 commands: - ./.ci-make.sh test-userinst-prep - ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb test-inst-bullseye-sqlite: image: *deb_test_image_bullseye group: pkg-test-1 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-bookworm-sqlite: image: *deb_test_image_bookworm group: pkg-test-1 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-buster-sqlite: image: *deb_test_image_buster group: pkg-test-2 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-sid-sqlite: image: *deb_test_image_sid group: pkg-test-2 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-jammy-sqlite: image: *deb_test_image_jammy group: pkg-test-2 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-focal-sqlite: image: *deb_test_image_focal group: pkg-test-2 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-kinetic-sqlite: image: *deb_test_image_kinetic group: pkg-test-3 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-lunar-sqlite: image: *deb_test_image_lunar group: pkg-test-3 commands: - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb test-inst-bullseye-bin: image: *deb_test_image_bullseye group: pkg-test-3 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-bookworm-bin: image: *deb_test_image_bookworm group: pkg-test-3 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-buster-bin: image: *deb_test_image_buster group: pkg-test-4 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-sid-bin: image: *deb_test_image_sid group: pkg-test-4 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-jammy-bin: image: *deb_test_image_jammy group: pkg-test-4 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-focal-bin: image: *deb_test_image_focal group: pkg-test-4 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-kinetic-bin: image: *deb_test_image_kinetic group: pkg-test-5 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-inst-lunar-bin: image: *deb_test_image_lunar group: pkg-test-5 commands: - ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb when: event: [ tag ] test-repo-bookworm-sqlite: image: *deb_test_image_bookworm group: pkg-test-5 commands: - ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo-sqlite - ./.ci-make.sh force-clean-forgejo - ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb - ./.ci-make.sh verify-data-dir-chmod upload-crystalcommit: image: woodpeckerci/plugin-gitea-release group: upload settings: base_url: https://sc.cryxtal.org files: - "*.deb" - "*.deb.sha256" api_key: from_secret: sc_api_key prerelease: false skip_verify: true when: event: [ tag ] upload-codeberg: image: woodpeckerci/plugin-gitea-release group: upload settings: base_url: https://codeberg.org files: - "*.deb" - "*.deb.sha256" api_key: from_secret: cb_api_key prerelease: false skip_verify: true when: event: [ tag ] publish-apt-repo: image: *ci_verify_image group: upload environment: FORGEJO_SITE: https://code.forgejo.org FORGEJO_OWNER: forgejo-contrib DEBIAN_DIST: bullseye DEBIAN_COMPONENT: forgejo secrets: [ cfo_api_key ] commands: - export FORGEJO_KEY=$CFO_API_KEY - ./.ci-forgejo-apt.sh *.deb when: event: [ tag ]