Compare commits

..

1 commit
main ... 1.20

Author SHA1 Message Date
crystal
7e8f3de834
Revert "Merge 1.20 branch back into main"
This reverts commit 0f5de5d006.
2024-01-09 17:17:34 -07:00
23 changed files with 394 additions and 625 deletions

View file

@ -8,10 +8,6 @@ CI_VERIFY_RETRY_COUNT=30 # How many times to retry before giving up if the pipel
case "$1" in case "$1" in
"submodule-build") "submodule-build")
cd "$2" cd "$2"
LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.StaticRootPath=/usr/share/forgejo\""
LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/forgejo\""
LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.CustomConf=/etc/forgejo/app.ini\""
export LDFLAGS
make build make build
EXIT_STATUS=$? EXIT_STATUS=$?
mv gitea ../"$3" mv gitea ../"$3"
@ -23,40 +19,6 @@ case "$1" in
make "$@" make "$@"
exit $? exit $?
;; ;;
"actions-prep")
case "$2" in
"build-forgejo-deb")
APREP_APT_EXTRAS="debhelper devscripts sudo"
;;
"installtest")
APREP_APT_EXTRAS="sudo"
;;
"")
APREP_APT_EXTRAS=
;;
*)
echo "Invalid argument: $2"
exit 98
;;
esac
EXIT_TOTAL=0
apt update
EXIT_TOTAL=$(($EXIT_TOTAL+$?))
apt upgrade -y
EXIT_TOTAL=$(($EXIT_TOTAL+$?))
if [ "$APREP_APT_EXTRAS" ] ; then
apt install $APREP_APT_EXTRAS -y
EXIT_TOTAL=$(($EXIT_TOTAL+$?))
fi
ACTIONS_FORGEJOSHA="$(git rev-parse --short=10 HEAD)"
if [ "$GITHUB_REF_TYPE" = "tag" ] ; then
echo "::set-output name=artifactlabel::$GITHUB_REF_NAME-$ACTIONS_FORGEJOSHA"
else
echo "::set-output name=artifactlabel::$ACTIONS_FORGEJOSHA"
fi
echo "::set-output name=forgejosha::$ACTIONS_FORGEJOSHA"
exit $EXIT_TOTAL
;;
"ci-verify") "ci-verify")
RETRY_LOOPS=0 RETRY_LOOPS=0
while [ $RETRY_LOOPS -le $CI_VERIFY_RETRY_COUNT ] ; do while [ $RETRY_LOOPS -le $CI_VERIFY_RETRY_COUNT ] ; do
@ -81,51 +43,6 @@ case "$1" in
exit 255 exit 255
;; ;;
"download-binary") "download-binary")
if [ "$GITHUB_BASE_REF" ] ; then
echo "forgejo actions pull request mode"
echo "making sure you didn't break binary builds..."
PR_MODE=true
fi
if [ "$GITHUB_REF_TYPE" = "tag" ] ; then
echo "INFO: Forgejo Actions mode!"
CI_COMMIT_TAG="$GITHUB_REF_NAME"
elif [ "$GITHUB_REF_TYPE" = "branch" ] || [ $PR_MODE ] ; then
echo "WARNING: Not building a tag! Simulating it..."
echo "(forgejo actions mode)"
echo "(this will test the binary packaging without cutting a tag in the package)"
echo "Resolving tag..."
cd forgejo
CI_COMMIT_TAG_RESOLVE=$(git tag --points-at HEAD)
if [ ! $CI_COMMIT_TAG_RESOLVE ] ; then
echo "Failed to resolve exact tag! Getting as close as we can..."
git describe --tags HEAD
FORGEJO_CLOSEST_TAG=$(git describe --tags HEAD --abbrev=0)
echo "Looking for experimental tag..."
EXPERIMENTAL_REPO="forgejo-experimental/forgejo"
git remote add experimental $CI_VERIFY_API/$EXPERIMENTAL_REPO
git fetch experimental --tags
CI_COMMIT_TAG_RESOLVE=$(git tag --points-at HEAD)
if [ $CI_COMMIT_TAG_RESOLVE ] ; then
CI_VERIFY_REPO=$EXPERIMENTAL_REPO
FORGEJO_CLOSEST_TAG=$CI_COMMIT_TAG_RESOLVE
echo "Found it! Using experimental tag and downloading binary from $CI_VERIFY_REPO"
fi
CI_COMMIT_TAG_RESOLVE=$FORGEJO_CLOSEST_TAG
echo "Closest existing tag: $CI_COMMIT_TAG_RESOLVE"
if [ "$CI_COMMIT_TAG_RESOLVE" != "${CI_COMMIT_TAG_RESOLVE%"-dev"}" ] || [ ! "$CI_COMMIT_TAG_RESOLVE" ] ; then
if [ $PR_MODE ] ; then
echo "I can't figure out which release version of Forgejo to build your PR against."
echo "Whatever you're trying to do is not yet implemented."
exit 97
fi
echo "err! unable to resolve tag or building dev version- skipping binary dl"
CI_COMMIT_TAG_RESOLVE=
fi
fi
cd ..
echo "Proceeding with resolved tag: $CI_COMMIT_TAG_RESOLVE"
CI_COMMIT_TAG="$CI_COMMIT_TAG_RESOLVE"
fi
if [ $CI_COMMIT_TAG ] ; then if [ $CI_COMMIT_TAG ] ; then
CI_RELEASE_ASSETS=$(curl $CI_VERIFY_API/api/v1/repos/$CI_VERIFY_REPO/releases/tags/$CI_COMMIT_TAG | jq -c '.assets[]' | grep linux-amd64) CI_RELEASE_ASSETS=$(curl $CI_VERIFY_API/api/v1/repos/$CI_VERIFY_REPO/releases/tags/$CI_COMMIT_TAG | jq -c '.assets[]' | grep linux-amd64)
CI_RELEASE_BINARY_URL=$(echo "$CI_RELEASE_ASSETS" | grep linux-amd64\" | jq -r --jsonargs .browser_download_url) CI_RELEASE_BINARY_URL=$(echo "$CI_RELEASE_ASSETS" | grep linux-amd64\" | jq -r --jsonargs .browser_download_url)
@ -149,31 +66,20 @@ case "$1" in
mkdir deb/forgejo-sqlite-bin mkdir deb/forgejo-sqlite-bin
mv forgejo-bin deb/forgejo-bin/forgejo mv forgejo-bin deb/forgejo-bin/forgejo
mv forgejo-sqlite-bin deb/forgejo-sqlite-bin/forgejo mv forgejo-sqlite-bin deb/forgejo-sqlite-bin/forgejo
cp -r forgejo/public deb/public
cp -r forgejo/templates deb/templates
cp -r forgejo/options deb/options
if [ -x forgejo-bin-dl ] ; then if [ -x forgejo-bin-dl ] ; then
mkdir deb/forgejo-bin-dl mkdir deb/forgejo-bin-dl
mv forgejo-bin-dl deb/forgejo-bin-dl/forgejo mv forgejo-bin-dl deb/forgejo-bin-dl/forgejo
mv deb/.forgejo-bin.install deb/debian/forgejo-bin.install mv deb/.forgejo-bin.install deb/debian/forgejo-bin.install
ln -s forgejo-common.preinst deb/debian/forgejo-bin.preinst ln -s forgejo.preinst deb/debian/forgejo-bin.preinst
ln -s forgejo.postinst deb/debian/forgejo-bin.postinst ln -s forgejo.postinst deb/debian/forgejo-bin.postinst
ln -s forgejo.prerm deb/debian/forgejo-bin.prerm ln -s forgejo.prerm deb/debian/forgejo-bin.prerm
echo >> deb/debian/control echo >> deb/debian/control
cat deb/.forgejo-bin.control >> deb/debian/control cat deb/.forgejo-bin.control >> deb/debian/control
fi fi
;; ;;
"package-build-deps")
cd deb
mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" --remove
exit $?
;;
"package-build") "package-build")
cd deb cd deb
if [ "$2" = "actions" ] ; then dpkg-buildpackage -b
PACKAGE_BUILD_EXTRA_ARGS="--no-sign"
fi
dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS
exit $? exit $?
;; ;;
"package-clean") "package-clean")
@ -197,29 +103,14 @@ case "$1" in
cp ./etc/systemd/system/forgejo.service.d/override.conf /etc/systemd/system/forgejo.service.d/override.conf cp ./etc/systemd/system/forgejo.service.d/override.conf /etc/systemd/system/forgejo.service.d/override.conf
;; ;;
"install-run-test") "install-run-test")
export DEBIAN_FRONTEND=noninteractive
apt update apt update
if [ "$2" = "${2#"./forgejo-bin_"}" ] ; then apt install -y ./"$2"
APT_FORGEJO_COMMON_RESOLVE="$(ls -1 ./forgejo-common_*_all.deb)" [ -f "/etc/default/forgejo" ] && . /etc/default/forgejo
if [ -f "$APT_FORGEJO_COMMON_RESOLVE" ] ; then [ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo
APT_FORGEJO_COMMON="./$APT_FORGEJO_COMMON_RESOLVE" [ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo
else sudo -u $FORGEJO_USER USER=$FORGEJO_USER \
echo "ERR! Unable to find the necessary forgejo-common package!" HOME=$FORGEJO_HOME GITEA_WORK_DIR=$FORGEJO_HOME \
exit 96 forgejo web -q --config /etc/forgejo/app.ini &
fi
fi
apt install -y $APT_FORGEJO_COMMON ./"$2"
if [ -f "/etc/default/forgejo" ] || [ "$2" != "${2#"./forgejo-bin_"}" ] ; then
[ -f "/etc/default/forgejo" ] && . /etc/default/forgejo
[ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo
[ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo
sudo -u $FORGEJO_USER USER=$FORGEJO_USER \
HOME=$FORGEJO_HOME FORGEJO_WORK_DIR=$FORGEJO_HOME \
forgejo web -q --config /etc/forgejo/app.ini &
else
echo "No env setup! Run testing defaults using hardcoded vars..."
sudo -u forgejo USER=forgejo forgejo web -q &
fi
sleep 10 sleep 10
curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo" curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
exit $? exit $?
@ -227,14 +118,13 @@ case "$1" in
"install-repo-test") "install-repo-test")
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt update -qq apt update -qq
apt install -y apt-utils apt-listchanges
apt install -y ./"$2" apt install -y ./"$2"
apt update -qq apt update -qq
apt upgrade -y apt upgrade -y
apt update -qq apt update -qq
apt install -y "$3" apt install "$3"
sudo -u forgejo USER=forgejo \ sudo -u forgejo USER=forgejo \
HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo \ HOME=/var/lib/forgejo GITEA_WORK_DIR=/var/lib/forgejo \
forgejo web -q --config /etc/fogejo/app.ini & forgejo web -q --config /etc/fogejo/app.ini &
sleep 10 sleep 10
curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo" curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
@ -259,20 +149,10 @@ case "$1" in
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt update -qq apt update -qq
apt install -qq --no-install-recommends -y git-lfs apt install -qq --no-install-recommends -y git-lfs
apt install -qq -y -t bookworm-backports golang-$DEP_GOLANG_VER apt install -qq -y -t bookworm-backports golang-1.20
ln -sf /usr/lib/go-$DEP_GOLANG_VER/bin/go /usr/local/bin/go ln -sf /usr/lib/go-1.20/bin/go /usr/local/bin/go
adduser --quiet --comment forgejo --disabled-password forgejo adduser --quiet --comment forgejo --disabled-password forgejo
chown -R forgejo:forgejo . chown -R forgejo:forgejo .
if [ "$DEP_GOLANG_NODEB_REV" ];then
su forgejo -c "./.ci-make.sh forgejo-test-deps_upgrade-go $DEP_GOLANG_VER $DEP_GOLANG_NODEB_REV"
fi
;;
"forgejo-test-deps_upgrade-go")
go install golang.org/dl/go$2.$3@latest
ln -s ~/go/bin/go$2.$3 ~/go/bin/go
export PATH="$HOME/go/bin:$PATH"
go download
go version
;; ;;
esac esac

356
.crystalintegration.yml Normal file
View file

@ -0,0 +1,356 @@
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 'docker.io/node:20-bookworm'
- &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
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
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 ]

View file

@ -1,223 +0,0 @@
on: [push, pull_request]
jobs:
build-forgejo-deb:
runs-on: bullseye
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
fetch-tags: true
filter: tree:0
- uses: actions/setup-node@v3
with:
node-version: 20
- uses: actions/setup-go@v4
with:
go-version: "1.23"
check-latest: true
- name: "actions prep: build-forgejo-deb"
id: ciprep
run: ./.ci-make.sh actions-prep build-forgejo-deb
- uses: crystal/install-jq-action@v2.1.0
- run: ./.ci-make.sh ci-verify forgejo
- run: ./.ci-make.sh submodule-make forgejo deps-frontend
- run: ./.ci-make.sh submodule-make forgejo deps-backend
- name: tag pre-condition
run: |
cd forgejo
git update-ref refs/heads/tag_test $(git rev-parse --verify HEAD)
- run: ./.ci-make.sh submodule-make forgejo security-check
- run: ./.ci-make.sh submodule-make forgejo frontend
- run: ./.ci-make.sh submodule-make forgejo checks-backend
- name: Download Forgejo binary
run: ./.ci-make.sh download-binary forgejo-bin-dl
- name: Build Forgejo for amd64
run: ./.ci-make.sh submodule-build forgejo forgejo-bin
- name: Build Forgejo (with SQLite) for amd64
run: ./.ci-make.sh submodule-build forgejo forgejo-sqlite-bin
env:
TAGS: sqlite sqlite_unlock_notify
- run: ./.ci-make.sh package-prep
- run: ./.ci-make.sh package-build-deps
- run: ./.ci-make.sh package-build actions
- run: ./.ci-make.sh package-clean
- name: build repo package
run: |
cd repo-deb
./build.sh actions
- name: generate sha256
run: |
./.ci-make.sh pkg-gen-sha256
./.ci-make.sh preview-sha256
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
- uses: actions/upload-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
path: |
*.deb
*.deb.sha256
repo-deb/*.deb
installtest-bookworm-sqlite:
runs-on: bookworm
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
installtest-bullseye-sqlite:
runs-on: bullseye
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
installtest-buster-sqlite:
runs-on: buster
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
installtest-bookworm-user:
runs-on: bookworm
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh test-userinst-prep
- run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
testsuite-repo-upgrade-sqlite:
runs-on: bookworm
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo-sqlite
- run: ./.ci-make.sh force-clean-forgejo
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
- run: ./.ci-make.sh verify-data-dir-chmod
installtest-buster-bin:
runs-on: buster
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: "actions prep: installtest"
id: ciprep
run: ./.ci-make.sh actions-prep installtest
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
publish-release-repo:
runs-on: bookworm
needs:
- build-forgejo-deb
steps:
- uses: actions/checkout@v4
- name: actions prep
id: ciprep
run: ./.ci-make.sh actions-prep
- uses: actions/download-artifact@v3
with:
name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
- uses: crystal/install-jq-action@v2.1.0
- run: mkdir forgejo-release
- run: mv *.deb *.deb.sha256 forgejo-release/
# - uses: actions/forgejo-release@v1
# with:
# direction: upload
# url: https://forgejo.glicid.fr
# token: ${{ secrets.CFO_API_KEY }}
# release-dir: forgejo-release
- name: Debian package registry publish
env:
FORGEJO_SITE: https://forgejo.glicid.fr
FORGEJO_OWNER: GLiCID
DEBIAN_DIST: bookworm
DEBIAN_COMPONENT: forgejo
FORGEJO_KEY: ${{ secrets.CFO_API_KEY }}
run: |
cd forgejo-release
../.ci-forgejo-apt.sh *.deb
cd ..

2
.gitmodules vendored
View file

@ -1,3 +1,3 @@
[submodule "forgejo"] [submodule "forgejo"]
path = forgejo path = forgejo
url = https://codeberg.org/forgejo/forgejo url = https://sc.cryxtal.org/forgejo/forgejo

View file

@ -1,6 +1,8 @@
# Debian Packages for Forgejo # Debian Packages for Forgejo
Hello! If you want to run Forgejo on Debian/Ubuntu and you're looking for packages to install it to your system, you've come to the right place! Hello! If you want to run Forgejo on Debian/Ubuntu and you're looking for packages to install it to your system, you've come to the right place!
### Build test: [![ci-status](https://ci.cryxtal.org/api/badges/forgejo-contrib/forgejo-deb/status.svg?branch=1.20)](https://ci.cryxtal.org/forgejo-contrib/forgejo-deb)
## Download info ## Download info
You can find the latest release downloads in [the releases tab](https://codeberg.org/forgejo-contrib/forgejo-deb/releases). There are currently 3 packages built by this script. You can find the latest release downloads in [the releases tab](https://codeberg.org/forgejo-contrib/forgejo-deb/releases). There are currently 3 packages built by this script.
- `forgejo`: A basic production-ready Forgejo build without SQLite support - `forgejo`: A basic production-ready Forgejo build without SQLite support

View file

@ -1,8 +1,8 @@
Package: forgejo-bin Package: forgejo-bin
Architecture: amd64 Architecture: amd64
Priority: optional Priority: optional
Provides: forgejo, gitea Provides: forgejo,gitea
Depends: adduser (>= 3.11), git Depends: adduser (>= 3.11)
Conflicts: forgejo, forgejo-sqlite, forgejo-common Conflicts: forgejo,forgejo-bin
Description: Forgejo: Beyond Coding. We Forge. (binary) Description: Forgejo: Beyond Coding. We Forge. (binary)
The official Forgejo release binary in a Debian package The official Forgejo release binary in a Debian package

View file

@ -1,29 +0,0 @@
forgejo (7.0.1-2) unstable; urgency=medium
WARNING: Forgejo will be upgraded to v7.0.1 LTS
Please read the Forgejo v7.0 release announcement and the release notes
for all v7.0.x versions and make any necessary adjustments to your
configuration before proceeding with the upgrade.
You may need to manually restart Forgejo after the upgrade is complete.
https://forgejo.org/2024-04-release-v7-0/
https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-1
-- crystal <crystal@noreply.codeberg.org> Sat, 27 Apr 2024 15:42:00 +0000
forgejo (1.21.4.0-2) unstable; urgency=medium
WARNING: Forgejo will be upgraded to v1.21.4-0
Please read the Forgejo v1.21 release announcement and the release notes
for all v1.21.x-x versions and make any necessary adjustments to your
configuration before proceeding with the upgrade.
You may need to manually restart Forgejo after the upgrade is complete.
https://forgejo.org/2023-11-release-v1211-0/
https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-4-0
-- crystal <crystal@noreply.codeberg.org> Wed, 17 Jan 2024 00:00:00 +0000

View file

@ -1,170 +1,3 @@
forgejo (10.0.3-1) unstable; urgency=medium
* Forgejo version 10.0.3
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#10.0.3
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sat, 29 Mar 2025 00:55:00 +0000
forgejo (10.0.2-1) unstable; urgency=medium
* Forgejo version 10.0.2
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#10.0.2
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sat, 29 Mar 2025 00:55:00 +0000
forgejo (10.0.1-1) unstable; urgency=medium
* Forgejo version 10.0.1
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#10.0.1
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Mon, 17 Feb 2025 00:55:00 +0000
forgejo (10.0.0-1) unstable; urgency=medium
* Forgejo version 10.0.0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#10.0.0
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sun, 19 Dec 2025 00:55:00 +0000
forgejo (9.0.3-1) unstable; urgency=medium
* Forgejo version 9.0.3
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#9.0.3
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sat, 14 Dec 2024 00:55:00 +0000
forgejo (9.0.2-1) unstable; urgency=medium
* Forgejo version 9.0.2
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#9.0.2
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sat, 14 Dec 2024 00:55:00 +0000
forgejo (9.0.1-1) unstable; urgency=medium
* Forgejo version 9.0.1
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#9.0.1
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Mon, 28 Oct 2024 00:55:00 +0000
forgejo (8.0.3-1) unstable; urgency=medium
* Forgejo version 8.0.3
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#8.0.3
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sun, 15 Sep 2024 00:55:00 +0000
forgejo (8.0.2-1) unstable; urgency=medium
* Forgejo version 8.0.2
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#8.0.2
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sun, 01 Sep 2024 00:55:00 +0000
forgejo (8.0.1-1) unstable; urgency=medium
* Forgejo version 8.0.1
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#8.0.1
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Tue, 27 Aug 2024 00:55:00 +0000
forgejo (7.0.7-1) unstable; urgency=medium
* Forgejo version 7.0.7
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-7
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Mon, 26 Aug 2024 00:55:00 +0000
forgejo (7.0.5-1) unstable; urgency=medium
* Forgejo version 7.0.5
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-5
* Split `forgejo-common` package for extra data
-- crystal <crystal@noreply.codeberg.org> Sun, 07 July 2024 17:22:00 +0000
forgejo (7.0.1-1) unstable; urgency=medium
* Forgejo version 7.0.1
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-1
* Forgejo Actions based build process
-- crystal <crystal@noreply.codeberg.org> Sat, 27 Apr 2024 15:35:00 +0000
forgejo (1.21.11.1-1) unstable; urgency=medium
* Forgejo version 1.21.11-1
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-11-1
-- crystal <crystal@noreply.codeberg.org> Fri, 19 Apr 2024 15:46:00 +0000
forgejo (1.21.11.0-1) unstable; urgency=medium
* Forgejo version 1.21.11-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-11-0
-- crystal <crystal@noreply.codeberg.org> Thu, 18 Apr 2024 23:36:00 +0000
forgejo (1.21.10.0-1) unstable; urgency=medium
* Forgejo version 1.21.10-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-10-0
-- crystal <crystal@noreply.codeberg.org> Tue, 9 Apr 2024 11:27:00 +0000
forgejo (1.21.8.0-1) unstable; urgency=medium
* Forgejo version 1.21.8-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-8-0
-- crystal <crystal@noreply.codeberg.org> Sat, 23 Mar 2024 18:15:00 +0000
forgejo (1.21.7.0-2) unstable; urgency=medium
* Forgejo version 1.21.7-0
* Add git dependency
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-7-0
-- crystal <crystal@noreply.codeberg.org> Fri, 22 Mar 2024 21:35:00 +0000
forgejo (1.21.6.0-1) unstable; urgency=medium
* Forgejo version 1.21.6-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-6-0
-- crystal <crystal@noreply.codeberg.org> Sun, 25 Feb 2024 12:10:00 +0000
forgejo (1.21.5.0-1) unstable; urgency=medium
* Forgejo version 1.21.5-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-5-0
-- crystal <crystal@noreply.codeberg.org> Wed, 31 Jan 2024 22:22:00 +0000
forgejo (1.21.4.0-2) unstable; urgency=medium
* Fix NEWS.Debian changelog
-- crystal <crystal@noreply.codeberg.org> Wed, 17 Jan 2024 00:00:00 +0000
forgejo (1.21.4.0-1) unstable; urgency=medium
* Forgejo version 1.21.4-0
* See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#1-21-4-0
-- crystal <crystal@noreply.codeberg.org> Tue, 16 Jan 2024 23:03:00 +0000
forgejo (1.20.6.1-0) unstable; urgency=medium forgejo (1.20.6.1-0) unstable; urgency=medium
* Forgejo version 1.20.6-1~deb0 * Forgejo version 1.20.6-1~deb0

View file

@ -8,24 +8,16 @@ Package: forgejo
Architecture: amd64 Architecture: amd64
Priority: optional Priority: optional
Provides: gitea Provides: gitea
Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git Depends: adduser (>= 3.11)
Conflicts: forgejo-sqlite, forgejo-bin Conflicts: forgejo-sqlite,forgejo-bin
Description: Forgejo: Beyond Coding. We Forge. Description: Forgejo: Beyond Coding. We Forge.
Forgejo with bindata ONLY - Use this package for MySQL or PostgreSQL setup Forgejo with bindata ONLY - Use this package for MySQL or PostgreSQL setup
Package: forgejo-sqlite Package: forgejo-sqlite
Architecture: amd64 Architecture: amd64
Priority: optional Priority: optional
Provides: forgejo, gitea Provides: forgejo,gitea
Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git Depends: adduser (>= 3.11)
Conflicts: forgejo, forgejo-bin Conflicts: forgejo,forgejo-bin
Description: Forgejo: Beyond Coding. We Forge. (SQLite) Description: Forgejo: Beyond Coding. We Forge. (SQLite)
Forgejo with bindata and SQLite support - Use this package to get started immediately Forgejo with bindata and SQLite support - Use this package to get started immediately
Package: forgejo-common
Architecture: all
Priority: optional
Depends: forgejo | forgejo-sqlite (= ${source:Version})
Conflicts: forgejo-bin
Description: Common files for Forgejo
Common data used for all Forgejo packages and architectures.

View file

@ -1,5 +0,0 @@
public/ /usr/share/forgejo
templates/ /usr/share/forgejo
options/ /usr/share/forgejo
forgejo.service /usr/lib/systemd/system
app.ini /etc/forgejo

View file

@ -1 +1,3 @@
forgejo-sqlite-bin/forgejo /usr/bin forgejo-sqlite-bin/forgejo /usr/bin
forgejo.service /usr/lib/systemd/system
app.ini /etc/forgejo

View file

@ -0,0 +1 @@
forgejo.preinst

View file

@ -1 +1,3 @@
forgejo-bin/forgejo /usr/bin forgejo-bin/forgejo /usr/bin
forgejo.service /usr/lib/systemd/system
app.ini /etc/forgejo

View file

@ -61,7 +61,7 @@ WorkingDirectory=~
#RuntimeDirectory=forgejo #RuntimeDirectory=forgejo
ExecStart=/usr/bin/forgejo web --config /etc/forgejo/app.ini ExecStart=/usr/bin/forgejo web --config /etc/forgejo/app.ini
Restart=always Restart=always
Environment=USER=forgejo HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo Environment=USER=forgejo HOME=/var/lib/forgejo GITEA_WORK_DIR=/var/lib/forgejo
# If you install Git to directory prefix other than default PATH (which happens # If you install Git to directory prefix other than default PATH (which happens
# for example if you install other versions of Git side-to-side with # for example if you install other versions of Git side-to-side with
# distribution version), uncomment below line and add that prefix to PATH # distribution version), uncomment below line and add that prefix to PATH

View file

@ -3,4 +3,4 @@
# LimitNOFILE=524288:524288 # LimitNOFILE=524288:524288
User=git User=git
Group=git Group=git
Environment=USER=git HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo Environment=USER=git HOME=/var/lib/forgejo GITEA_WORK_DIR=/var/lib/forgejo

@ -1 +1 @@
Subproject commit dde3f51c72feffac4805fc3133b6a681d8c97c6f Subproject commit 496b0acd22de9bf1305bf4b8bbe1c62cd95ec4fc

View file

@ -4,13 +4,10 @@ cp code-forgejo-org-forgejo-contrib.asc stub/
cp code-forgejo-org-forgejo-contrib.asc main/ cp code-forgejo-org-forgejo-contrib.asc main/
cp forgejo-deb.list stub/ cp forgejo-deb.list stub/
cp forgejo-deb.list main/ cp forgejo-deb.list main/
if [ "$1" = "actions" ] ; then
PACKAGE_BUILD_EXTRA_ARGS="--no-sign"
fi
cd stub cd stub
dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS dpkg-buildpackage -b
cd .. cd ..
cd main cd main
dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS dpkg-buildpackage -b
cd .. cd ..
exit 0 exit 0

View file

@ -1 +1 @@
deb https://code.forgejo.org/api/packages/forgejo-contrib/debian bullseye forgejo-lts deb https://code.forgejo.org/api/packages/forgejo-contrib/debian bullseye forgejo

View file

@ -1,26 +0,0 @@
forgejo-deb-repo (2-4) unstable; urgency=medium
WARNING: You are switching to the Forgejo LTS release channel!
After this upgrade is complete, you must run `apt upgrade` again to upgrade
to Forgejo 7.0.x LTS. You will no longer recieve new major Forgejo versions
until the next LTS version is available.
If you wish to switch to the standard release channel, use the following
commands to install the setup package. This package will be removed when the
release channel is successfully switched during the upgrade.
sudo apt install forgejo-deb-repo-stable
sudo apt update
sudo apt full-upgrade
More info: https://codeberg.org/forgejo-contrib/forgejo-deb/issues/35
Please read the Forgejo v7.0 release announcement and the release notes
for all v7.0.x versions and make any necessary adjustments to your
configuration before proceeding with the following upgrade.
https://forgejo.org/2024-04-release-v7-0/
https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-1
-- crystal <crystal@noreply.codeberg.org> Sun, 28 Apr 2024 17:48:00 +0000

View file

@ -1,15 +1,3 @@
forgejo-deb-repo (2-4) unstable; urgency=medium
* Switch to forgejo-lts component (LTS release channel)
-- crystal <crystal@noreply.codeberg.org> Sun, 28 Apr 2024 17:48:00 +0000
forgejo-deb-repo (2-2) unstable; urgency=medium
* Add apt-listchanges dep for important upgrade notices
-- crystal <crystal@noreply.codeberg.org> Sun, 28 Apr 2024 13:13:00 +0000
forgejo-deb-repo (2-1) unstable; urgency=medium forgejo-deb-repo (2-1) unstable; urgency=medium
* Move to https://code.forgejo.org/forgejo-contrib/-/packages * Move to https://code.forgejo.org/forgejo-contrib/-/packages

View file

@ -7,8 +7,7 @@ Build-Depends: debhelper (>= 10)
Package: forgejo-deb-repo Package: forgejo-deb-repo
Architecture: all Architecture: all
Priority: optional Priority: optional
Depends: forgejo-deb-repokey, apt-transport-https, apt-listchanges Depends: forgejo-deb-repokey, apt-transport-https
Conflicts: forgejo-deb-repo-lts
Description: APT Repository for forgejo-deb builds Description: APT Repository for forgejo-deb builds
Forgejo will be updated via apt along with other software on your system Forgejo will be updated via apt along with other software on your system
@ -17,4 +16,4 @@ Architecture: all
Priority: optional Priority: optional
Replaces: forgejo-deb-repo Replaces: forgejo-deb-repo
Description: APT Repository signing key for forgejo-deb Description: APT Repository signing key for forgejo-deb
Debian Package Registry key for https://code.forgejo.org/forgejo-contrib Debian Package Registry key for https://code.forgejo.org/crystal

View file

@ -2,4 +2,4 @@ forgejo-deb-repo (0-0) unstable; urgency=medium
* forgejo-deb APT repository stub * forgejo-deb APT repository stub
-- crystal <crystal@noreply.codeberg.org> Sun, 28 Jul 2024 18:25:00 +0000 -- crystal <crystal@noreply.codeberg.org> Tue, 25 Jul 2023 10:50:00 +0000