mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-14 04:28:49 +00:00
ci(yeet): enable windows builds
This also requires a bump to the minimum go version (#1525), but enables Windows builds. Windows is a bit of an experimental target for Anubis (I don't personally have any windows machines), but it compiles and should theoretically work. This is probably very worth it, I'm not aware of any distributions that need to package Anubis that don't have a supported version of Go packaged. If your distro does not, please consider upgrading to a supported version of Go. Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
72
yeetfile.js
72
yeetfile.js
@@ -1,40 +1,52 @@
|
||||
$`npm run assets`;
|
||||
|
||||
["amd64", "arm64", "ppc64le", "riscv64"].forEach((goarch) => {
|
||||
[deb, rpm, tarball].forEach((method) =>
|
||||
method.build({
|
||||
name: "anubis",
|
||||
description:
|
||||
"Anubis weighs the souls of incoming HTTP requests and uses a sha256 proof-of-work challenge in order to protect upstream resources from scraper bots.",
|
||||
homepage: "https://anubis.techaro.lol",
|
||||
license: "MIT",
|
||||
goarch,
|
||||
["linux", "windows"].forEach((platform) => {
|
||||
if (goarch == "ppc64le" && platform == "windows") {
|
||||
return;
|
||||
}
|
||||
|
||||
documentation: {
|
||||
"./README.md": "README.md",
|
||||
"./LICENSE": "LICENSE",
|
||||
"./data/botPolicies.yaml": "botPolicies.yaml",
|
||||
},
|
||||
if (goarch == "riscv64" && platform == "windows") {
|
||||
return;
|
||||
}
|
||||
|
||||
build: ({ bin, etc, systemd, doc }) => {
|
||||
$`go build -o ${bin}/anubis -ldflags '-s -w -extldflags "-static" -X "github.com/TecharoHQ/anubis.Version=${git.tag()}"' ./cmd/anubis`;
|
||||
$`go build -o ${bin}/anubis-robots2policy -ldflags '-s -w -extldflags "-static" -X "github.com/TecharoHQ/anubis.Version=${git.tag()}"' ./cmd/robots2policy`;
|
||||
[deb, rpm, tarball].forEach((method) =>
|
||||
method.build({
|
||||
name: "anubis",
|
||||
description:
|
||||
"Anubis weighs the souls of incoming HTTP requests and uses a sha256 proof-of-work challenge in order to protect upstream resources from scraper bots.",
|
||||
homepage: "https://anubis.techaro.lol",
|
||||
license: "MIT",
|
||||
goarch,
|
||||
platform,
|
||||
|
||||
file.install("./run/anubis@.service", `${systemd}/anubis@.service`);
|
||||
file.install("./run/default.env", `${etc}/default.env`);
|
||||
documentation: {
|
||||
"./README.md": "README.md",
|
||||
"./LICENSE": "LICENSE",
|
||||
"./data/botPolicies.yaml": "botPolicies.yaml",
|
||||
},
|
||||
|
||||
$`mkdir -p ${doc}/docs`;
|
||||
$`cp -a docs/docs ${doc}`;
|
||||
$`find ${doc} -name _category_.json -delete`;
|
||||
$`mkdir -p ${doc}/data`;
|
||||
$`cp -a data/apps ${doc}/data/apps`;
|
||||
$`cp -a data/bots ${doc}/data/bots`;
|
||||
$`cp -a data/clients ${doc}/data/clients`;
|
||||
$`cp -a data/common ${doc}/data/common`;
|
||||
$`cp -a data/crawlers ${doc}/data/crawlers`;
|
||||
$`cp -a data/meta ${doc}/data/meta`;
|
||||
},
|
||||
}),
|
||||
build: ({ bin, etc, systemd, doc }) => {
|
||||
$`go build -o ${bin}/anubis -ldflags '-s -w -extldflags "-static" -X "github.com/TecharoHQ/anubis.Version=${git.tag()}"' ./cmd/anubis`;
|
||||
$`go build -o ${bin}/anubis-robots2policy -ldflags '-s -w -extldflags "-static" -X "github.com/TecharoHQ/anubis.Version=${git.tag()}"' ./cmd/robots2policy`;
|
||||
|
||||
file.install("./run/anubis@.service", `${systemd}/anubis@.service`);
|
||||
file.install("./run/default.env", `${etc}/default.env`);
|
||||
|
||||
$`mkdir -p ${doc}/docs`;
|
||||
$`cp -a docs/docs ${doc}`;
|
||||
$`find ${doc} -name _category_.json -delete`;
|
||||
$`mkdir -p ${doc}/data`;
|
||||
$`cp -a data/apps ${doc}/data/apps`;
|
||||
$`cp -a data/bots ${doc}/data/bots`;
|
||||
$`cp -a data/clients ${doc}/data/clients`;
|
||||
$`cp -a data/common ${doc}/data/common`;
|
||||
$`cp -a data/crawlers ${doc}/data/crawlers`;
|
||||
$`cp -a data/meta ${doc}/data/meta`;
|
||||
},
|
||||
}),
|
||||
)
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user