forgejo-deb/.crystalintegration.yml
2023-07-02 23:58:53 -06:00

353 lines
9.2 KiB
YAML

platform: linux/amd64
when:
event: [ push, tag ]
variables:
- &ci_verify_image 'sc.cryxtal.org/ci-img/git-curl-jq:latest'
- &golang_image 'golang:1.20-bullseye'
- &forgejo_test_image 'codeberg.org/forgejo/test_env:1.20'
- &nodejs_image 'node:lts'
- &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'
- &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
pipeline:
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
build-frontend:
image: *nodejs_image
group: checks
environment:
BUILD_SUBMODULE: *build_submodule
commands:
- ./.ci-make.sh submodule-make "$BUILD_SUBMODULE" frontend
checks-backend:
image: *forgejo_test_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" checks-backend
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
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: true
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: true
skip_verify: true
when:
event: [ tag ]
publish-apt-repo:
image: *ci_verify_image
group: upload
environment:
FORGEJO_SITE: https://code.forgejo.org
FORGEJO_OWNER: crystal-experimental
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 ]