1
0
This repository has been archived on 2025-03-04. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Matheus Sampaio Queiroga d4fb42f9ac
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
Fix release
Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
2025-03-04 18:25:12 -03:00

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)
}
}