diff --git a/.ci-make.sh b/.ci-make.sh index a1dfce0..7141acf 100755 --- a/.ci-make.sh +++ b/.ci-make.sh @@ -8,10 +8,6 @@ CI_VERIFY_RETRY_COUNT=30 # How many times to retry before giving up if the pipel case "$1" in "submodule-build") 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 EXIT_STATUS=$? mv gitea ../"$3" @@ -23,40 +19,6 @@ case "$1" in make "$@" 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") RETRY_LOOPS=0 while [ $RETRY_LOOPS -le $CI_VERIFY_RETRY_COUNT ] ; do @@ -81,51 +43,6 @@ case "$1" in exit 255 ;; "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 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) @@ -149,31 +66,20 @@ case "$1" in mkdir deb/forgejo-sqlite-bin mv forgejo-bin deb/forgejo-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 mkdir deb/forgejo-bin-dl mv forgejo-bin-dl deb/forgejo-bin-dl/forgejo 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.prerm deb/debian/forgejo-bin.prerm echo >> deb/debian/control cat deb/.forgejo-bin.control >> deb/debian/control 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") cd deb - if [ "$2" = "actions" ] ; then - PACKAGE_BUILD_EXTRA_ARGS="--no-sign" - fi - dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS + dpkg-buildpackage -b exit $? ;; "package-clean") @@ -199,27 +105,13 @@ case "$1" in "install-run-test") export DEBIAN_FRONTEND=noninteractive apt update - if [ "$2" = "${2#"./forgejo-bin_"}" ] ; then - APT_FORGEJO_COMMON_RESOLVE="$(ls -1 ./forgejo-common_*_all.deb)" - if [ -f "$APT_FORGEJO_COMMON_RESOLVE" ] ; then - APT_FORGEJO_COMMON="./$APT_FORGEJO_COMMON_RESOLVE" - else - echo "ERR! Unable to find the necessary forgejo-common package!" - exit 96 - 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 + apt install -y ./"$2" + [ -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 GITEA_WORK_DIR=$FORGEJO_HOME \ + forgejo web -q --config /etc/forgejo/app.ini & sleep 10 curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo" exit $? @@ -234,7 +126,7 @@ case "$1" in apt update -qq apt install -y "$3" 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 & sleep 10 curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo" diff --git a/.crystalintegration.yml b/.crystalintegration.yml new file mode 100644 index 0000000..1c51f51 --- /dev/null +++ b/.crystalintegration.yml @@ -0,0 +1,360 @@ +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 + 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 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 ] diff --git a/.forgejo/workflows/forgejo-deb.yml b/.forgejo/workflows/forgejo-deb.yml deleted file mode 100644 index 99dce7e..0000000 --- a/.forgejo/workflows/forgejo-deb.yml +++ /dev/null @@ -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.24" - 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 .. diff --git a/.gitmodules b/.gitmodules index 5abb796..67768c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "forgejo"] path = forgejo - url = https://codeberg.org/forgejo/forgejo + url = https://sc.cryxtal.org/forgejo/forgejo diff --git a/README.md b/README.md index cabed1d..1079963 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # 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! +### Build test: [![ci-status](https://ci.cryxtal.org/api/badges/forgejo-contrib/forgejo-deb/status.svg)](https://ci.cryxtal.org/forgejo-contrib/forgejo-deb) + ## 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. - `forgejo`: A basic production-ready Forgejo build without SQLite support diff --git a/deb/.forgejo-bin.control b/deb/.forgejo-bin.control index ead2966..3f2de6f 100644 --- a/deb/.forgejo-bin.control +++ b/deb/.forgejo-bin.control @@ -1,8 +1,8 @@ Package: forgejo-bin Architecture: amd64 Priority: optional -Provides: forgejo, gitea -Depends: adduser (>= 3.11), git -Conflicts: forgejo, forgejo-sqlite, forgejo-common +Provides: forgejo,gitea +Depends: adduser (>= 3.11) +Conflicts: forgejo,forgejo-bin Description: Forgejo: Beyond Coding. We Forge. (binary) The official Forgejo release binary in a Debian package diff --git a/deb/debian/NEWS b/deb/debian/NEWS index e24bf94..b213eec 100644 --- a/deb/debian/NEWS +++ b/deb/debian/NEWS @@ -1,18 +1,3 @@ -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 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 diff --git a/deb/debian/changelog b/deb/debian/changelog index 562ada8..37ea995 100644 --- a/deb/debian/changelog +++ b/deb/debian/changelog @@ -1,115 +1,3 @@ -forgejo (11.0.0-1) unstable; urgency=medium - - * Forgejo version 11.0.0 - * See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#11.0.0 - * Split `forgejo-common` package for extra data - - -- crystal Wed, 30 Apr 2025 00:55:00 +0000 - -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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 27 Apr 2024 15:35:00 +0000 - forgejo (1.21.11.1-1) unstable; urgency=medium * Forgejo version 1.21.11-1 diff --git a/deb/debian/control b/deb/debian/control index ae16460..323d688 100644 --- a/deb/debian/control +++ b/deb/debian/control @@ -8,24 +8,16 @@ Package: forgejo Architecture: amd64 Priority: optional Provides: gitea -Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git -Conflicts: forgejo-sqlite, forgejo-bin +Depends: adduser (>= 3.11),git +Conflicts: forgejo-sqlite,forgejo-bin Description: Forgejo: Beyond Coding. We Forge. Forgejo with bindata ONLY - Use this package for MySQL or PostgreSQL setup Package: forgejo-sqlite Architecture: amd64 Priority: optional -Provides: forgejo, gitea -Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git -Conflicts: forgejo, forgejo-bin +Provides: forgejo,gitea +Depends: adduser (>= 3.11),git +Conflicts: forgejo,forgejo-bin Description: Forgejo: Beyond Coding. We Forge. (SQLite) 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. diff --git a/deb/debian/forgejo-common.install b/deb/debian/forgejo-common.install deleted file mode 100644 index 5904930..0000000 --- a/deb/debian/forgejo-common.install +++ /dev/null @@ -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 diff --git a/deb/debian/forgejo-sqlite.install b/deb/debian/forgejo-sqlite.install index 106c3c8..7a55675 100644 --- a/deb/debian/forgejo-sqlite.install +++ b/deb/debian/forgejo-sqlite.install @@ -1 +1,3 @@ forgejo-sqlite-bin/forgejo /usr/bin +forgejo.service /usr/lib/systemd/system +app.ini /etc/forgejo diff --git a/deb/debian/forgejo-sqlite.preinst b/deb/debian/forgejo-sqlite.preinst new file mode 120000 index 0000000..c9dce9a --- /dev/null +++ b/deb/debian/forgejo-sqlite.preinst @@ -0,0 +1 @@ +forgejo.preinst \ No newline at end of file diff --git a/deb/debian/forgejo.install b/deb/debian/forgejo.install index db18dc4..6440cb3 100644 --- a/deb/debian/forgejo.install +++ b/deb/debian/forgejo.install @@ -1 +1,3 @@ forgejo-bin/forgejo /usr/bin +forgejo.service /usr/lib/systemd/system +app.ini /etc/forgejo diff --git a/deb/debian/forgejo-common.preinst b/deb/debian/forgejo.preinst similarity index 100% rename from deb/debian/forgejo-common.preinst rename to deb/debian/forgejo.preinst diff --git a/deb/forgejo.service b/deb/forgejo.service index c5f3bc8..008d93e 100644 --- a/deb/forgejo.service +++ b/deb/forgejo.service @@ -61,7 +61,7 @@ WorkingDirectory=~ #RuntimeDirectory=forgejo ExecStart=/usr/bin/forgejo web --config /etc/forgejo/app.ini 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 # for example if you install other versions of Git side-to-side with # distribution version), uncomment below line and add that prefix to PATH diff --git a/etc/systemd/system/forgejo.service.d/override.conf b/etc/systemd/system/forgejo.service.d/override.conf index 02635f5..f626df8 100644 --- a/etc/systemd/system/forgejo.service.d/override.conf +++ b/etc/systemd/system/forgejo.service.d/override.conf @@ -3,4 +3,4 @@ # LimitNOFILE=524288:524288 User=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 diff --git a/forgejo b/forgejo index 308810c..1bb4034 160000 --- a/forgejo +++ b/forgejo @@ -1 +1 @@ -Subproject commit 308810cdd17e3edf928d38c5d410acf2c7aa7618 +Subproject commit 1bb403421d278bd2528c7f0231716983ca749df2 diff --git a/repo-deb/build.sh b/repo-deb/build.sh index bdb1ef2..d9eed8c 100755 --- a/repo-deb/build.sh +++ b/repo-deb/build.sh @@ -4,13 +4,10 @@ cp code-forgejo-org-forgejo-contrib.asc stub/ cp code-forgejo-org-forgejo-contrib.asc main/ cp forgejo-deb.list stub/ cp forgejo-deb.list main/ -if [ "$1" = "actions" ] ; then - PACKAGE_BUILD_EXTRA_ARGS="--no-sign" -fi cd stub -dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS +dpkg-buildpackage -b cd .. cd main -dpkg-buildpackage -b $PACKAGE_BUILD_EXTRA_ARGS +dpkg-buildpackage -b cd .. exit 0 diff --git a/repo-deb/forgejo-deb.list b/repo-deb/forgejo-deb.list index 8a6def5..946a727 100644 --- a/repo-deb/forgejo-deb.list +++ b/repo-deb/forgejo-deb.list @@ -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 diff --git a/repo-deb/main/debian/NEWS b/repo-deb/main/debian/NEWS deleted file mode 100644 index d2ae9fc..0000000 --- a/repo-deb/main/debian/NEWS +++ /dev/null @@ -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 Sun, 28 Apr 2024 17:48:00 +0000 diff --git a/repo-deb/main/debian/changelog b/repo-deb/main/debian/changelog index 6d67096..088aae2 100644 --- a/repo-deb/main/debian/changelog +++ b/repo-deb/main/debian/changelog @@ -1,15 +1,3 @@ -forgejo-deb-repo (2-4) unstable; urgency=medium - - * Switch to forgejo-lts component (LTS release channel) - - -- crystal 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 Sun, 28 Apr 2024 13:13:00 +0000 - forgejo-deb-repo (2-1) unstable; urgency=medium * Move to https://code.forgejo.org/forgejo-contrib/-/packages diff --git a/repo-deb/main/debian/control b/repo-deb/main/debian/control index ff33adb..7a929c1 100644 --- a/repo-deb/main/debian/control +++ b/repo-deb/main/debian/control @@ -7,8 +7,7 @@ Build-Depends: debhelper (>= 10) Package: forgejo-deb-repo Architecture: all Priority: optional -Depends: forgejo-deb-repokey, apt-transport-https, apt-listchanges -Conflicts: forgejo-deb-repo-lts +Depends: forgejo-deb-repokey, apt-transport-https Description: APT Repository for forgejo-deb builds Forgejo will be updated via apt along with other software on your system diff --git a/repo-deb/stub/debian/changelog b/repo-deb/stub/debian/changelog index 5dd821e..84cc044 100644 --- a/repo-deb/stub/debian/changelog +++ b/repo-deb/stub/debian/changelog @@ -2,4 +2,4 @@ forgejo-deb-repo (0-0) unstable; urgency=medium * forgejo-deb APT repository stub - -- crystal Sun, 28 Jul 2024 18:25:00 +0000 + -- crystal Tue, 25 Jul 2023 10:50:00 +0000