Похоже, действия можно выполнять, сохраняя совместимость между Github и Gitea
Здравствуйте, я некомпетентен.
В основном я занимаюсь внедрением Gitea Actions.
Настройка среды выполнения Gitea Actions
Это почти то же самое, что и ниже, но
Gitea Actions уже здесь!
Кстати, похоже, что [actions] включен по умолчанию в app.ini, даже если ENABLED=true не установлено.
Версия на момент установки
$ gitea -v
Gitea version 1.22.4 built with GNU Make 4.3, go1.22.9 : bindata, sqlite, sqlite_unlock_notify
Версия Go, установленная с помощью apt на Debian на Hetzner, была старой, и я получил ошибку при сборке, поэтому я устанавливаю последнюю версию 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
В этот момент я уже сделал apt remove, но он все еще смотрел на /usr/bin/go, и я забыл передать путь, поэтому я настроил путь.
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
rm /usr/bin/go
exec bash
go version
Сборка раннера Gitea Actions
Его необходимо запускать как отдельный демон, и docker также требуется, поэтому я установлю его.
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
Связывание с act_runner register
Вероятно, я понял причину, по которой это отделено от основного бинарного файла Gitea, на этом этапе.
Я думаю, это сделано для того, чтобы легко разделить среду для запуска Gitea Actions на сервере, отличном от того, который хостит сам 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.
Кстати, получение токена для передачи Runner отличается от ранее упомянутого сайта и в настоящее время находится по адресу
https://git.domain.tld/admin/actions/runners
было.
Это мелочь, но я назвал раннер "danzig" в честь вокалиста Misfits.
Забавно представить, как Гленн Данциг выполняет сборку в фоновом режиме.
Похоже, нужно установить apparmor
Похоже, не хватает необходимых модулей.
Похоже, требуются Linux Security Modules, отличные от SE Linux.

Итак, я установлю его.
apt install -y apparmor apparmor-utils
Итак, что касается исполняемого файла демона act_runner, то на время тестирования я поместил его в rc.local, чтобы он запускался только при старте.
Причина в том, что если бы я сразу поместил его в Systemd или Supervisord, было бы сложно проверить, когда демон умрет в процессе. Поэтому, если он умирает чисто, мне просто нужно будет посмотреть лог смерти демона в nohup.out, что, вероятно, будет легче найти.
Запишите следующее в /etc/rc.local
nohup act_runner daemon &
Затем перезапустите демон Docker.
service docker restart
Кстати, причина, по которой я почти не использую systemctl, заключается в том, что он универсален и может использоваться аналогично в других дистрибутивах и средах BSD.
Редактирование YAML
Честно говоря, я не совсем понимаю, куда смотрит actions/checkout@v4, когда он работает без явного указания, но, просмотрев логи, я вижу, что act_runner, похоже, умело исправляет это, чтобы понять этот синтаксис.

Таким образом, похоже, что он использует активы с Github, а не какой-либо зеркальный актив actions/checkout@v4, хранящийся на стороне act_runner.
# 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 ./...
В статье Qiita необходимо явно указывать полный URL для всего, кроме actions/checkout@v4, поэтому я указал полный URL для uses в name: Set up Go. Но если следовать вышесказанному, то теперь, когда версия обновлена, возможно, он сможет правильно распознать это как актив Github?
Я подумал об этом, но тогда могут возникнуть проблемы, если это будет конфликтовать с активами на Gitea, поэтому, похоже, лучше указать полный URL, чтобы избежать проблем.
*P.S.*
Похоже, что owner/repo@ref работает как для Github, так и для Gitea, так что можно не беспокоиться.
Успешная работа

Я сделал это!!!!
Итак, на этом все.
Спасибо еще раз.