aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"
},