Skip to content

auralioth/archbuild

Repository files navigation

Archlinux 自动打包

使用方法

将以下内容添加到 /etc/pacman.conf(我自己个人使用添加在[core]之上):

[auralioth]
SigLevel = Optional TrustAll
Server = https://github.com/auralioth/archbuild/releases/latest/download

实现

Job1: Check

  • 获取每次提交前后变化的文件
  • 判断每个package目录下文件是否变化(主要是PKGBUILD和一些source), 并结合依云的nvchecker判断version是否变化,判断是否需要更新,输出build_status和待build的包(matrix)
  • 根据nvchecker.tomlold_ver.json判断是否有包被移除,并更新old_ver.json,输出remove_statusremove_pkgs
  • 提交oldver_file

Job2-1: Build(if needs.check.outputs.build_status == 'true')

  • arch-build action 通过 matrix 分开打包并分开git commit
  • 上传打包好的 asset
  • 删除package release 下的的旧包(目前只能根据old_pkgver删除上个版本的包)

Job2-2: Repo_Remove(if needs.check.outputs.remove_status == 'true')

  • repo-remove 需要移除的包
  • 上传新的 Database

Job3: Release ( needs: [ Build, Repo_Remove ] )

  • 要求 Build.result == 'success' && Repo_remove.result != 'failure'
  • 下载上传的 assets
  • repo-action 更新数据库
  • action-gh-release 发布
  • Telegram 通知打包完成

管理

  • 添加包
    • 在目录下的nvchecker.toml(这是nvcheck-and-update action定义的默认值,可以通过输入nvfile更改)填写好信息,然后在目录下创建包的文件夹(注意名称的一致性,否则会失败,目前要求二者的名称与PKGBUILD的pkgname必须一致
  • 删除包
    • 删除目录(可选)和nvchecker.toml的配置文件(必须)
    • 删除release上的旧包(可选,目前不能自动删除)
    • 注意: 不要手动删除oldver_file下的信息,因为需要依靠它来判断包被删除从而更新Database
  • 更新包
    • 需要更新包的打包文件时(删改PKGBUILD、增加相关source等),Github Action可以自动重新打包,也无需手动更新pkg hash sums,但pkgrel需要按要求增加(官方打包的要求)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published