361 lines
9.7 KiB
YAML
361 lines
9.7 KiB
YAML
labels:
|
|
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_mantic 'sc.cryxtal.org/ci-img/deb-test-ubuntu:mantic'
|
|
- &deb_test_image_lunar 'sc.cryxtal.org/ci-img/deb-test-ubuntu:lunar'
|
|
- &forgejo_test_golang_ver '1.21'
|
|
- &forgejo_test_golang_nodeb_rev '9'
|
|
- &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:
|
|
git:
|
|
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'
|
|
|
|
git-push-codeberg:
|
|
image: *ci_verify_image
|
|
secrets: [ cb_git_auth ]
|
|
commands:
|
|
- git remote add codeberg https://$CB_GIT_AUTH@codeberg.org/forgejo-contrib/forgejo-deb
|
|
- if ( $(git rev-parse --is-shallow-repository) == "true" );then git fetch --unshallow origin ;fi
|
|
- git fetch codeberg
|
|
- git push codeberg --tags refs/remotes/origin/*:refs/heads/*
|
|
|
|
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
|
|
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
|
|
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
|
|
DEP_GOLANG_NODEB_REV: *forgejo_test_golang_nodeb_rev
|
|
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 timetzdata
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
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 timetzdata sqlite sqlite_unlock_notify
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
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-mantic-sqlite:
|
|
image: *deb_test_image_mantic
|
|
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-mantic-bin:
|
|
image: *deb_test_image_mantic
|
|
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 ]
|