aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2025-04-02 19:57:28 -0400
committerGitHub <noreply@github.com>2025-04-02 23:57:28 +0000
commit266d8c0cc25f9d93ea7da87eb199bc87e41c653e (patch)
tree0b21b2b7637c6847f396b6e9efe50fe39fc60181
parent573dfd099fa53c0cdbc3256cf15ea36af5bb9cb0 (diff)
downloadanubis-266d8c0cc25f9d93ea7da87eb199bc87e41c653e.tar.xz
anubis-266d8c0cc25f9d93ea7da87eb199bc87e41c653e.zip
add a Makefile (#191)
* add a Makefile Based on advice from IRC, a makefile helps downstream packagers understand how to build the software. Signed-off-by: Xe Iaso <me@xeiaso.net> * Apply review suggestions Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net>
-rw-r--r--Makefile25
-rw-r--r--docs/docs/CHANGELOG.md1
-rw-r--r--docs/docs/developer/building-anubis.md11
-rw-r--r--package.json1
4 files changed, 34 insertions, 4 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..380d9f1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,25 @@
+NODE_MODULES = node_modules
+
+.PHONY: build assets deps lint test
+
+$(NODE_MODULES):
+ npm run assets
+
+assets: $(NODE_MODULES)
+
+deps: assets
+ npm ci
+ go mod download
+
+build: deps
+ npm run build
+ @echo "Anubis is now built to ./var/anubis"
+
+all: build
+
+lint:
+ go vet ./...
+ staticcheck ./...
+
+test:
+ npm run test \ No newline at end of file
diff --git a/docs/docs/CHANGELOG.md b/docs/docs/CHANGELOG.md
index fabbff5..11c85ca 100644
--- a/docs/docs/CHANGELOG.md
+++ b/docs/docs/CHANGELOG.md
@@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Disabled running integration tests on Windows hosts due to it's reliance on posix features (see [#133](https://github.com/TecharoHQ/anubis/pull/133#issuecomment-2764732309)).
- Added support for passing the ed25519 signing key in a file with `-ed25519-private-key-hex-file` or `ED25519_PRIVATE_KEY_HEX_FILE`.
- Fixed minor typos
+- Added a Makefile to enable comfortable workflows for downstream packagers.
- Added `zizmor` for GitHub Actions static analysis
- Fixed most `zizmor` findings
- Enabled Dependabot
diff --git a/docs/docs/developer/building-anubis.md b/docs/docs/developer/building-anubis.md
index a55b8e7..69b2404 100644
--- a/docs/docs/developer/building-anubis.md
+++ b/docs/docs/developer/building-anubis.md
@@ -22,20 +22,23 @@ In order to build a production-ready binary of Anubis, you need the following pa
## Install dependencies
```text
-go mod download
-npm ci
+make deps
```
+This will download Go and NPM dependencies.
+
## Building static assets
```text
-npm run assets
+make assets
```
+This will build all static assets (CSS, JavaScript) for distribution.
+
## Building Anubis to the `./var` folder
```text
-go build -o ./var/anubis ./cmd/anubis
+make build
```
From this point it is up to you to make sure that `./var/anubis` ends up in the right place. You may want to consult the `./run` folder for useful files such as a systemd unit and `anubis.env.default` file.
diff --git a/package.json b/package.json
index bf1fd6e..844c92d 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"test": "npm run assets && go test ./...",
"test:integration": "npm run assets && go test -v ./internal/test",
"assets": "go generate ./... && ./web/build.sh && ./xess/build.sh",
+ "build": "npm run assets && go build -o ./var/anubis ../cmd/anubis",
"dev": "npm run assets && go run ./cmd/anubis --use-remote-address",
"container": "npm run assets && go run ./cmd/containerbuild"
},