Parece que é possível executar Actions mantendo a compatibilidade entre Github e Gitea
Olá, sou incompetente.
O que estou fazendo é principalmente a introdução do Gitea Actions.
Configurando o ambiente de execução do Gitea Actions
O que estou fazendo é quase o mesmo que o seguinte, mas
Gitea Actions está chegando!
A propósito, parece que [actions] está ativado por padrão em app.ini, mesmo que ENABLED=true não seja definido.
Versão no momento da introdução
$ gitea -v
Gitea version 1.22.4 built with GNU Make 4.3, go1.22.9 : bindata, sqlite, sqlite_unlock_notify
A versão do Go instalada com apt no Debian no Hetzner era antiga e recebi um erro ao compilar, então vou instalar a versão mais recente do 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
Nesse momento, eu já havia feito apt remove, mas ainda estava olhando para /usr/bin/go e esqueci de passar o caminho, então configurei o caminho.
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
rm /usr/bin/go
exec bash
go version
Compilando o runner do Gitea Actions
É necessário que ele seja executado como um daemon separado, e docker também é necessário, então vou instalá-lo.
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
Vinculando com act_runner register
Provavelmente, entendi o motivo pelo qual isso é separado do binário principal do Gitea neste ponto.
Acho que é para separar facilmente o ambiente para executar Gitea Actions em um servidor diferente do servidor que hospeda o próprio 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.
A propósito, a obtenção do token a ser passado para o Runner é diferente do site mencionado anteriormente e atualmente é
https://git.domain.tld/admin/actions/runners
que estava.
É trivial, mas nomeei o runner de danzig em homenagem ao vocalista do Misfits.
É divertido imaginar Glenn Danzig fazendo o trabalho de compilação nos bastidores.
Parece que preciso instalar o apparmor
Aparentemente, os módulos necessários estão faltando.
Parece que são necessários Linux Security Modules diferentes do SE Linux.

Então, vou instalá-lo.
apt install -y apparmor apparmor-utils
Então, sobre o que fazer com o binário executável para o daemon do act_runner, por enquanto, durante o período de testes, eu o coloquei em rc.local para que ele apenas inicie.
A razão é que se eu o colocasse no Systemd ou Supervisord desde o início, seria problemático verificar quando o daemon morresse no meio do caminho. Então, se ele morrer de forma limpa, é mais fácil apenas olhar o log de morte do daemon em nohup.out depois, o que o torna mais fácil de encontrar.
Escreva o seguinte em /etc/rc.local
nohup act_runner daemon &
E então reinicie o daemon do Docker.
service docker restart
A propósito, a razão pela qual eu quase não uso systemctl é porque é genérico e pode ser usado da mesma forma em outras distribuições e ambientes BSD.
Editar YAML
Honestamente, não entendo bem para onde actions/checkout@v4 está olhando quando funciona sem ser explícito, mas olhando os logs, parece que o act_runner está corrigindo-o inteligentemente para entender essa sintaxe.

Então, parece que ele está usando ativos diretamente do Github, em vez de algum tipo de ativo espelhado de actions/checkout@v4 que o act_runner possui.
# 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 ./...
No artigo do Qiita, era necessário especificar explicitamente a URL completa para tudo, exceto actions/checkout@v4, então eu especifiquei a URL completa para uses em name: Set up Go. Mas se for como mencionado anteriormente, agora que a versão está mais alta, talvez ele reconheça inteligentemente como um ativo do Github?
Pensei nisso, mas então parece que haveria problemas se houvesse conflito com ativos no Gitea, então especificar a URL completa parece menos problemático.
※Adendo
Aparentemente, owner/repo@ref funciona tanto para Github quanto para Gitea, então posso prosseguir sem pensar muito.
Funcionando com sucesso

Consegui!!!!
Então, é isso por hoje.
Obrigado novamente.