Parece que se pueden ejecutar acciones con Github-Gitea manteniendo la compatibilidad
Hola, soy un inútil.
Lo que estoy haciendo es principalmente la introducción de Gitea Actions.
Preparar el entorno de ejecución de Gitea Actions
Lo que estoy haciendo es casi lo mismo que lo siguiente,
¡Gitea Actions ya está aquí!
Por cierto, parece que no es necesario establecer [actions] en ENABLED=true en app.ini, ya que está activado por defecto.
Versión en el momento de la instalación
$ gitea -v
Gitea version 1.22.4 built with GNU Make 4.3, go1.22.9 : bindata, sqlite, sqlite_unlock_notify
La versión de Go instalada con apt en Debian en Hetzner era antigua y me dio un error al compilar, así que instalaré la última versión de Go.
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
exec bash
go version
En ese momento, aunque ya había hecho apt remove, seguía apuntando a /usr/bin/go y había olvidado pasar la ruta, así que configuré la ruta.
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
rm /usr/bin/go
exec bash
go version
Compilar el runner de Gitea Actions
Es necesario que se ejecute como un demonio separado, y también se necesita docker, así que lo instalaré.
apt install -y make docker.io
service docker status
git clone https://gitea.com/gitea/act_runner
cd act_runner/
make build
mv ./act_runner /usr/local/bin
exec bash
Vincular con act_runner register
Probablemente, en este punto entendí la razón por la que esto está separado del binario principal de Gitea.
Creo que es para separar fácilmente el entorno de ejecución de Gitea Actions en un servidor diferente al que aloja Gitea.
# act_runner register
INFO Registering runner, arch=amd64, os=linux, version=v0.2.11+6-g8bc0275.
INFO Enter the Gitea instance URL (for example, https://gitea.com/):
https://git.domain.tld/
INFO Enter the runner token:
Secret key
INFO Enter the runner name (if set empty, use hostname: debian-2gb-hel1-1):
danzig
INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-latest:docker://gitea/runner-images:ubuntu-latest):
INFO Registering runner, name=danzig, instance=https://git.domain.tld/, labels=[ubuntu-latest:docker://gitea/runner-images:ubuntu-latest ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04 ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04].
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.
Por cierto, la obtención del token para el Runner es diferente a lo que se menciona en el sitio web anterior, y actualmente era
https://git.domain.tld/admin/actions/runners
.
Es una tontería, pero puse el nombre del runner como danzig, el nombre del vocalista de Misfits.
Me pareció divertido pensar en Glenn Danzig haciendo el trabajo de compilación en segundo plano.
Parece que hay que instalar apparmor
Al parecer, faltan los módulos necesarios.
Parece que se necesita un Linux Security Modules diferente a SE Linux.
Así que lo instalaré.
apt install -y apparmor apparmor-utils
Entonces, en cuanto a qué hacer con el binario ejecutable del demonio act_runner, por ahora, durante el período de prueba, lo puse en rc.local para que solo se inicie.
La razón es que si lo meto directamente en Systemd o Supervisord desde el principio, se volvería complicado verificar qué pasó si el demonio muere a mitad de camino, así que si muere limpiamente, solo tengo que mirar el log de la muerte del demonio en nohup.out, lo que me parece más fácil de encontrar.
Escribir lo siguiente en /etc/rc.local
nohup act_runner daemon &
Y reiniciar el demonio de Docker.
service docker restart
Por cierto, la razón por la que casi nunca uso systemctl es porque es genérico y se puede usar de la misma manera en otras distribuciones y entornos BSD.
Editar yaml
Para ser honesto, no entiendo del todo a dónde apunta actions/checkout@v4 cuando funciona sin ser explícito, pero al revisar los logs, parece que act_runner lo está interpretando correctamente.
Por lo tanto, parece que está utilizando los activos de Github directamente, en lugar de algún tipo de activo espejo de actions/checkout@v4 que act_runner pueda tener.
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
name: Go
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.23.3'
- name: Build
run: go build -v ./...
- name: Test
run: go test -v ./...
Según el artículo de Qiita, es necesario especificar la URL completa explícitamente para todo excepto para actions/checkout@v4, así que especifiqué la URL completa en uses de name: Set up Go, pero si sigo lo que mencioné antes, y dado que la versión ha subido, ¿quizás ahora lo reconozca correctamente como un activo de Github?
Sin embargo, pensé que si lo hacía, podría haber problemas de conflicto con los activos existentes en Gitea, así que parece más seguro especificar la URL completa.
※Postdata
Al parecer, tanto Github como Gitea aceptan el formato owner/repo@ref tal cual, así que parece que puedo usarlo sin preocuparme.
Funcionamiento exitoso

¡¡¡Lo logré!!!!
Así que, por esta vez, hasta aquí.
Hasta la próxima.