gitea actionsに移行するかも
gitea actions
というのは、github actions
とかgitlab-ci
と呼ばれるものに相当するものなんだけど、有効にするかどうか迷っていました。
というのもserverの負担が増大するし、いくつものserviceを動作させている環境だと、それぞれの反応がどうしても遅くなってしまうからです。
したがって、こういうのは全部無料で使えるgithubを利用するのが一番でした。
しかし、最近になってusername(id)の関係でgiteaを使う頻度が増えてきたので、gitea actions
を有効にすることにしました。
githubでは使いたいusername(id)がすでに取られていることが多く、時代はself-hostやdomainになっていくのだろうなあと、そんなふうに思います。
私の場合、最近になってreposを整理したこともあり、ネームスペースは結構気になります。
例えば、最近作った自作osはai os
という名前ですが、username/aios
ではなく、ai/os
というネームスペースを使用したかった。
とはいえ、これもちょっと分かりづらいですよね。本来はai/aios
とかのほうがわかりやすいかな。まあ、好みの問題ということにしておきましょう。
gitea actionsの構築
gitea ci
とも呼ばれます。
https://blog.gitea.com/hacking-on-gitea-actions/
web-uiでsettingからactionsのtokenを取得しておいてください。
$ git clone https://gitea.com/gitea/act_runner
$ cd act_runner
$ make build
$ ./act_runner register
$ ./act_runner daemon
# nohup ./act_runner daemon &
これで使えるはず。statusがアイドルになります。
あとはgh-actionsと同じようにrepoに設定ファイルを置いてpush
します。
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ gitea.status }}."
docker images(container registry)
docker imagesの置き場所としてdocker hub(dockerhub)が最も支配的で、かつ使いやすいです。
なぜなら、デフォルトでdockerhubが指定されるからです。
ただ、github packages(ghcr.io)
に置いてあることも増えてきて、github actions
の影響が大きいと思います。
$ docker run -it syui/aios ai
$ docker run -it ghcr.io/syui/aios ai
しかし、今までsyui/aios
を使っていましたが、gitea actions
を有効にしたことでai/os
に置き換えやすくなります。というか、有効にしたのは、主にこれのためです。
$ docker tag syui/aios git.syui.ai/ai/os
$ docker push git.syui.ai/ai/os
$ docker run -it git.syui.ai/ai/os ai
ただ、docker imagesは本当に容量を食うので、あまりおすすめできない。dockerhubに置くのが一番でしょう。
私の場合、repoをgiteaに移行したのに、dockerだけgithub, dockerhubなのはあまり良くない。ネームスペースが異なるのが良くない。dockerもgiteaに移行するかも。
なんか2GBを超えたあたりでpushできなくなります。
received unexpected HTTP status: 500 Internal Server Error
The push refers to repository [***/divya.jain/homer]
994393dc58e7: Pushed
received unexpected HTTP status: 500 Internal Server Error
したがって、localhostからpushします。
actions runner
OCI runtime exec failed: exec failed: unable to start container process: exec: “node”: executable file not found in $PATH: unknown
nodeをdocker(gitea-runner)にinstallしてもcheckoutのときにerrが出ます。
ただ、runs-on: ubuntu-latest
のみならerrがでません。したがって、これはcontainer: archlinux
が問題なのかもしれません。
どちらにせよarchisoはarchlinuxで実行しますので、nodeをinstallしたcontainer: syui/aios
を使用します。
runs-on: ubuntu-latest
container:
#image: archlinux
image: syui/aios