1
0
mirror of https://gitlab.com/packaging/gitea synced 2025-04-04 15:16:59 +00:00

Compare commits

..

No commits in common. "master" and "v1.17.1-3" have entirely different histories.

6 changed files with 65 additions and 218 deletions

View File

@ -15,30 +15,29 @@ stages:
stage: package
image: golang:latest
script:
- export VERSION=$(echo ${CI_COMMIT_TAG#*v} | cut -d'+' -f1)
- export PATCHLEVEL=$(echo ${CI_COMMIT_TAG} | cut -d'+' -f2)
- export VERSION=$(echo ${CI_COMMIT_TAG#*v} | cut -d'-' -f1)
- export PATCHLEVEL=$(echo ${CI_COMMIT_TAG} | cut -d'-' -f2)
- apt-get -qq update
- apt-get -qqy install ruby-dev ruby-ffi curl file
- gem install fpm
- gem install specific_install
- gem specific_install https://github.com/root360/fpm.git all_fixes
- mkdir -p "${CI_PROJECT_DIR}/package_root/usr/bin"
- echo "https://dl.gitea.com/gitea/${VERSION}/gitea-${VERSION}-linux-${ARCH}"
- curl -sL -o
"${CI_PROJECT_DIR}/package_root/usr/bin/gitea"
"https://dl.gitea.com/gitea/${VERSION}/gitea-${VERSION}-linux-${ARCH}"
"https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-${ARCH}"
- file
--mime-type
--brief
"${CI_PROJECT_DIR}/package_root/usr/bin/gitea"
| grep -q 'application/x-executable'
- chmod +x "${CI_PROJECT_DIR}/package_root/usr/bin/gitea"
- gem install fpm
- fpm
--architecture "${ARCH}"
--input-type dir
--output-type deb
--package "${CI_PROJECT_DIR}/gitea_${VERSION}+${PATCHLEVEL}_${ARCH}.deb"
--package "${CI_PROJECT_DIR}/gitea_${VERSION}-${PATCHLEVEL}_${ARCH}.deb"
--name "${NAME}"
--version "${VERSION}+${PATCHLEVEL}"
--version "${VERSION}-${PATCHLEVEL}"
--description "${DESCRIPTION}"
--maintainer "Stefan Heitmüller <stefan.heitmueller@gmx.com>"
--url "${URL}"
@ -53,134 +52,92 @@ stages:
artifacts:
paths:
- $CI_PROJECT_DIR/*.deb
expire_in: 7 days

.manual: &manual
when: manual
only:
- tags

.trigger: &trigger
when: delayed
start_in: 2 hours
only:
- triggers

gitea-amd64-tag:
<<: [*package, *manual]
gitea-amd64:
<<: *package
variables:
<<: *vars
ARCH: amd64

gitea-amd64-trigger:
<<: [*package, *trigger]
variables:
<<: *vars
ARCH: amd64

gitea-arm64-tag:
<<: [*package, *manual]
gitea-arm64:
<<: *package
variables:
<<: *vars
ARCH: arm64

gitea-arm64-trigger:
<<: [*package, *trigger]
variables:
<<: *vars
ARCH: arm64

.test-install: &test-install
test-install:
stage: test
image: ubuntu:noble
script:
- ./.gitlab-ci/test-install.sh

.test-update: &test-update
stage: test
image: ubuntu:noble
script:
- ./.gitlab-ci/test-update.sh

test-install-trigger:
<<: *test-install
image: docker:latest
services:
- docker:dind
needs:
- gitea-amd64-trigger
only:
- trigger

test-install-tag:
<<: *test-install
needs:
- gitea-amd64-tag
- gitea-amd64
script:
- docker run
-d
--name systemd-ubuntu
--privileged
-v /sys/fs/cgroup:/sys/fs/cgroup:ro
-v $CI_PROJECT_DIR:/src
-e CI_PROJECT_DIR=/src
-e CI_COMMIT_TAG=$CI_COMMIT_TAG
jrei/systemd-ubuntu:20.04
- docker exec -t systemd-ubuntu /bin/bash /src/.gitlab-ci/test-install.sh
only:
- tags

test-update-trigger:
<<: *test-update
test-update:
stage: test
image: docker:latest
services:
- docker:dind
needs:
- gitea-amd64-trigger
only:
- trigger

test-update-tag:
<<: *test-update
needs:
- gitea-amd64-tag
- gitea-amd64
script:
- docker run
-d
--name systemd-ubuntu
--privileged
-v /sys/fs/cgroup:/sys/fs/cgroup:ro
-v $CI_PROJECT_DIR:/src
-e CI_PROJECT_DIR=/src
-e CI_COMMIT_TAG=$CI_COMMIT_TAG
jrei/systemd-ubuntu:20.04
- docker exec -t systemd-ubuntu /bin/bash /src/.gitlab-ci/test-update.sh
only:
- tags

.repro: &repo
reprepro:
cache:
untracked: true
paths:
- $CI_PROJECT_DIR/.repo
key: repo
key: reprepro
stage: repo
image: registry.gitlab.com/packaging/utils:latest
image: registry.gitlab.com/packaging/reprepro-multiple-versions:latest
script:
- /deb.sh gitea

repo-apt-tag:
<<: [*repo]
needs:
- gitea-amd64-tag
- gitea-arm64-tag
- test-install-tag
- test-update-tag
rules:
- if: $CI_COMMIT_TAG && $CI_PIPELINE_SOURCE != "trigger"


repo-apt-trigger:
<<: [*repo]
needs:
- gitea-amd64-trigger
- gitea-arm64-trigger
- test-install-trigger
- test-update-trigger
rules:
- if: $CI_COMMIT_TAG && $CI_PIPELINE_SOURCE == "trigger"
- apt-get -qq update
- apt-get -qqy install curl
- curl -L https://gitlab.com/packaging/utils/-/raw/main/repo.sh | bash -s -- gitea
only:
- tags

pages:
cache:
untracked: true
paths:
- $CI_PROJECT_DIR/.repo
key: repo
key: reprepro
policy: pull
stage: pages
image: ubuntu:focal
needs:
- job: repo-apt-tag
optional: true
- job: repo-apt-trigger
optional: true
script:
- mkdir $CI_PROJECT_DIR/public
- cp -rv
$CI_PROJECT_DIR/.repo/deb/gpg.key
$CI_PROJECT_DIR/.repo/deb/gitea/gitea/{dists,pool}
- cp -r
$CI_PROJECT_DIR/.repo/gpg.key
$CI_PROJECT_DIR/.repo/gitea/{dists,pool}
$CI_PROJECT_DIR/public/
artifacts:
paths:
@ -188,4 +145,3 @@ pages:
expire_in: 1 day
only:
- tags
- triggers

View File

@ -1,84 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: gitea
# Required-Start: $syslog $network
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: A self-hosted Git service written in Go.
# Description: A self-hosted Git service written in Go.
### END INIT INFO

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DESC="Gitea - Git with a cup of tea"
NAME=gitea
SERVICEVERBOSE=yes
PIDFILE=/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/var/lib/$NAME
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="web -c /etc/$NAME/app.ini"
USER=gitea
STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/1/KILL/5}"

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

do_start()
{
GITEA_ENVS="USER=$USER GITEA_WORK_DIR=$WORKINGDIR HOME=/var/lib/$USER"
GITEA_EXEC="$DAEMON -- $DAEMON_ARGS"
sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\
--background --chdir $WORKINGDIR --chuid $USER \\
--exec /bin/bash -- -c '/usr/bin/env $GITEA_ENVS $GITEA_EXEC'"
}

do_stop()
{
start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PIDFILE --name $NAME --oknodo
rm -f $PIDFILE
}

do_status()
{
if [ -f $PIDFILE ]; then
if kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
echo "$NAME is running, PID is $(cat $PIDFILE)"
else
echo "$NAME process is dead, but pidfile exists"
fi
else
echo "$NAME is not running"
fi
}

case "$1" in
start)
echo "Starting $DESC" "$NAME"
do_start
;;
stop)
echo "Stopping $DESC" "$NAME"
do_stop
;;
status)
do_status
;;
restart)
echo "Restarting $DESC" "$NAME"
do_stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 2
;;
esac

exit 0

2
.gitlab-ci/test-install.sh Executable file → Normal file
View File

@ -2,5 +2,5 @@

. "${CI_PROJECT_DIR}/.gitlab-ci/test.sh"

apt-get -y install "${CI_PROJECT_DIR}/gitea_${VERSION}+${PATCHLEVEL}_amd64.deb"
apt-get -y install "${CI_PROJECT_DIR}/gitea_${VERSION}-${PATCHLEVEL}_amd64.deb"
start_gitea

4
.gitlab-ci/test-update.sh Executable file → Normal file
View File

@ -6,9 +6,9 @@ curl -sL -o /etc/apt/trusted.gpg.d/morph027-gitea.asc https://packaging.gitlab.i
echo "deb [arch=amd64] https://packaging.gitlab.io/gitea gitea main" > /etc/apt/sources.list.d/morph027-gitea.list
apt-get update
apt-get -y install gitea
install -o gitea -g gitea -m 644 "/${CI_PROJECT_DIR}/.gitlab-ci/app.ini" /etc/gitea/app.ini
cp "/${CI_PROJECT_DIR}/.gitlab-ci/app.ini" /etc/gitea/app.ini
start_gitea
curl -s localhost:3000/api/v1/version | jq -e '.version'
apt-get -y --allow-downgrades install "${CI_PROJECT_DIR}/gitea_${VERSION}+${PATCHLEVEL}_amd64.deb"
apt-get -y --allow-downgrades install "${CI_PROJECT_DIR}/gitea_${VERSION}-${PATCHLEVEL}_amd64.deb"
restart_gitea
curl -s localhost:3000/api/v1/version | jq -e '.version'

16
.gitlab-ci/test.sh Executable file → Normal file
View File

@ -2,24 +2,20 @@

set -e

VERSION=$(echo "${CI_COMMIT_TAG#*v}" | cut -d'+' -f1)
PATCHLEVEL=$(echo "${CI_COMMIT_TAG}" | cut -d'+' -f2)
VERSION=$(echo "${CI_COMMIT_TAG#*v}" | cut -d'-' -f1)
PATCHLEVEL=$(echo "${CI_COMMIT_TAG}" | cut -d'-' -f2)
export VERSION PATCHLEVEL

if [ ! -f /etc/init.d/gitea ]; then
cp -v "${CI_PROJECT_DIR}"/.gitlab-ci/init /etc/init.d/gitea
fi

start_gitea() {
/etc/init.d/gitea start
systemctl start gitea
sleep 10
if ! /etc/init.d/gitea status | grep 'gitea is running'; then
cat /var/lib/gitea/log/gitea.log
if ! systemctl is-active gitea; then
journalctl -lu gitea --no-pager
fi
}

restart_gitea() {
/etc/init.d/gitea stop
systemctl stop gitea
start_gitea
}


21
LICENSE
View File

@ -1,21 +0,0 @@
MIT License

Copyright (c) 2022 packaging

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.