Some checks failed
Build / build (386) (push) Successful in 10m50s
Build / build (arm) (push) Successful in 10m41s
Build / build (amd64) (push) Successful in 10m54s
Build / build (arm64) (push) Successful in 9m13s
Build / build (loong64) (push) Successful in 11m0s
Build / build (mips) (push) Successful in 10m58s
Build / build (mips64) (push) Has been cancelled
Build / build (mips64le) (push) Has been cancelled
Build / build (s390x) (push) Has been cancelled
Build / build (ppc64le) (push) Has been cancelled
Build / build (riscv64) (push) Has been cancelled
Build / build (ppc64) (push) Has been cancelled
Build / build (mipsle) (push) Has been cancelled
Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
103 lines
2.5 KiB
Go
103 lines
2.5 KiB
Go
package main
|
|
|
|
import (
|
|
"archive/tar"
|
|
"bytes"
|
|
"flag"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"sirherobrine23.com.br/gitea/act/dpkg"
|
|
)
|
|
|
|
var (
|
|
TargetFile = flag.String("upload", "", "input file")
|
|
Host = flag.String("host", "https://sirherobrine23.com.br", "target host to upload")
|
|
Token = flag.String("token", "", "Gitea token")
|
|
Version = flag.String("version", "", "version")
|
|
Arch = flag.String("arch", "", "arch")
|
|
|
|
ActService string = `[Unit]
|
|
Description=Gitea runner
|
|
After=syslog.target
|
|
After=network.target
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
Group=root
|
|
Restart=always
|
|
RestartSec=2s
|
|
WorkingDirectory=/root
|
|
Environment=USER=root HOME=/etc/act_runner
|
|
ExecStart=/usr/bin/act_runner daemon --config /etc/act_runner/config.yaml
|
|
`
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
dataTarBuff := &bytes.Buffer{}
|
|
pkg := tar.NewWriter(dataTarBuff)
|
|
defer pkg.Close()
|
|
|
|
// -/etc/act_runner
|
|
pkg.WriteHeader(&tar.Header{Name: "etc/act_runner", Typeflag: tar.TypeDir})
|
|
|
|
// -/usr/lib/systemd/system/act_runner.service
|
|
pkg.WriteHeader(&tar.Header{Name: "usr/lib/systemd/system/act_runner.service", Mode: 0755})
|
|
pkg.Write([]byte(ActService))
|
|
|
|
// -/usr/bin/act_runner
|
|
actFile, err := os.Open(*TargetFile)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "Cannot open act_runner file: %s\n", err)
|
|
os.Exit(1)
|
|
return
|
|
}
|
|
stat, _ := actFile.Stat()
|
|
pkg.WriteHeader(&tar.Header{Name: "usr/bin/act_runner", Mode: int64(stat.Mode()), Size: stat.Size()})
|
|
if _, err := io.Copy(pkg, actFile); err != nil {
|
|
fmt.Fprintf(os.Stderr, "Cannot make dpkg file: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// Close
|
|
pkg.Close()
|
|
|
|
// Pkg config
|
|
pkgConfig := &dpkg.Package{
|
|
Name: "gitea-act-runner",
|
|
Version: *Version,
|
|
Description: [2]string{"Host your own runner for gitea, gitea runner comes with several advantages compared to github runner."},
|
|
Architecture: dpkg.ArchALL,
|
|
OriginalMaintainer: nil,
|
|
Maintainer: dpkg.Maintainer{
|
|
Name: "Matheus Sampaio Queiroga",
|
|
Contact: "srherobrine20@gmail.com",
|
|
},
|
|
Extra: map[string]any{
|
|
"Priority": "optional",
|
|
"Section": "default",
|
|
"Homepage": "https://gitea.com/gitea/act_runner",
|
|
"Depends": "docker-ce | docker.io",
|
|
},
|
|
}
|
|
pkgConfig.Architecture.UnmarshalText([]byte(*Arch))
|
|
|
|
dpkgFile := &bytes.Buffer{}
|
|
dpkg.WriteDpkg(dpkgFile, &dpkg.Dpkg{
|
|
DataSize: int64(len(dataTarBuff.Bytes())),
|
|
Data: dataTarBuff,
|
|
Pkg: pkgConfig,
|
|
})
|
|
|
|
if err := Upload(*Token, "gitea", "gitea", "main", dpkgFile); err != nil {
|
|
fmt.Fprintf(os.Stderr, "Upload error: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|