2021-05-12 02:18:25 -07:00
|
|
|
# this fun little grep just extracts the version information from Cargo.toml.
|
2021-05-31 23:50:34 -07:00
|
|
|
CARGO_VERSION=$$(grep version Cargo.toml | head -1 | awk '{ print $$3 }' | sed 's/"//g')
|
2021-05-12 02:18:25 -07:00
|
|
|
|
2021-05-22 03:54:49 -07:00
|
|
|
build: test
|
|
|
|
|
cargo build
|
|
|
|
|
|
|
|
|
|
test:
|
2022-04-14 15:49:04 -07:00
|
|
|
cargo test --lib
|
2021-05-22 03:54:49 -07:00
|
|
|
|
2021-06-21 19:23:59 -07:00
|
|
|
test-integration:
|
2021-07-26 11:54:05 -07:00
|
|
|
ifneq (${SKIP},)
|
2022-02-20 13:06:42 -08:00
|
|
|
TOKEN=$$(cat test-token.txt) sudo -E bash -c "$$(which cargo) test ${RUN_TEST} -- --skip '${SKIP}' --nocapture --test-threads 1"
|
2021-07-26 11:54:05 -07:00
|
|
|
else
|
2022-02-20 13:06:42 -08:00
|
|
|
TOKEN=$$(cat test-token.txt) sudo -E bash -c "$$(which cargo) test ${RUN_TEST} -- --nocapture --test-threads 1"
|
2021-07-26 11:54:05 -07:00
|
|
|
endif
|
2021-05-22 03:54:49 -07:00
|
|
|
|
2021-05-12 02:18:25 -07:00
|
|
|
docker-image:
|
|
|
|
|
docker build -t zerotier/zeronsd .
|
|
|
|
|
|
|
|
|
|
docker-image-package:
|
2021-05-31 23:50:34 -07:00
|
|
|
docker build --build-arg IS_LOCAL=1 -t zerotier/zeronsd:$(CARGO_VERSION) .
|
2022-01-31 11:15:38 -08:00
|
|
|
docker build -f Dockerfile.alpine -t zerotier/zeronsd:alpine-$(CARGO_VERSION) .
|
|
|
|
|
|
|
|
|
|
docker-image-push: docker-image-package
|
|
|
|
|
docker push zerotier/zeronsd:$(CARGO_VERSION)
|
|
|
|
|
docker push zerotier/zeronsd:alpine-$(CARGO_VERSION)
|
|
|
|
|
docker tag zerotier/zeronsd:$(CARGO_VERSION) zerotier/zeronsd:latest
|
|
|
|
|
docker tag zerotier/zeronsd:alpine-$(CARGO_VERSION) zerotier/zeronsd:alpine-latest
|
2022-01-31 20:47:50 -08:00
|
|
|
docker push zerotier/zeronsd:latest
|
|
|
|
|
docker push zerotier/zeronsd:alpine-latest
|
2021-05-12 02:18:25 -07:00
|
|
|
|
2022-05-17 20:27:20 -07:00
|
|
|
packagedir:
|
2022-04-26 00:59:06 -07:00
|
|
|
mkdir -p target/packages
|
2022-05-17 20:27:20 -07:00
|
|
|
|
|
|
|
|
package-ubi: packagedir packages-out
|
2022-05-13 21:56:32 -07:00
|
|
|
docker build -f Dockerfile.ubi -t zeronsd-packages-ubi .
|
|
|
|
|
docker run -it -v ${PWD}:/code -w /code --rm zeronsd-packages-ubi bash -c ". /root/.cargo/env && cargo build --release && cargo generate-rpm && mv /code/target/generate-rpm/*.rpm /code/target/packages"
|
2022-05-17 20:27:20 -07:00
|
|
|
|
|
|
|
|
package-ubuntu22: packagedir packages-out
|
2022-04-26 00:59:06 -07:00
|
|
|
docker build -f Dockerfile.ubuntu -t zeronsd-packages-ubuntu .
|
2022-05-21 07:03:01 -07:00
|
|
|
docker run -it -v ${PWD}:/code -w /code --rm zeronsd-packages-ubuntu bash -c "cargo deb --variant ubuntu22 && mv /code/target/debian/*.deb /code/target/packages"
|
2022-05-17 20:27:20 -07:00
|
|
|
|
|
|
|
|
package-debian: packagedir packages-out
|
2021-05-12 02:18:25 -07:00
|
|
|
docker build -f Dockerfile.packages -t zeronsd-packages .
|
2022-05-13 21:56:32 -07:00
|
|
|
docker run -it -v ${PWD}:/code -w /code --rm zeronsd-packages bash -c ". /root/.cargo/env && cargo deb && mv /code/target/debian/*.deb /code/target/packages"
|
2022-05-17 20:27:20 -07:00
|
|
|
|
|
|
|
|
packages: docker-image-package package-ubi package-ubuntu22 package-debian
|
2021-05-12 02:18:25 -07:00
|
|
|
make packages-out
|
|
|
|
|
|
|
|
|
|
packages-out:
|
|
|
|
|
@echo
|
2022-04-26 00:59:06 -07:00
|
|
|
@find target/packages -name '*.deb' -o -name '*.rpm'
|
2021-05-12 02:18:25 -07:00
|
|
|
@echo docker image "zerotier/zeronsd:$(CARGO_VERSION)" was tagged
|
|
|
|
|
@echo
|
|
|
|
|
@echo "The files were written as root. Please ensure they fit your needed permissions manually."
|
|
|
|
|
@echo
|
|
|
|
|
|
2021-05-13 16:02:31 -07:00
|
|
|
clean:
|
2021-05-12 02:18:25 -07:00
|
|
|
@echo
|
|
|
|
|
@echo Running sudo to clean your target directory
|
|
|
|
|
@echo
|
2021-08-28 02:50:11 -07:00
|
|
|
sudo rm -rf target
|
2021-05-12 02:18:25 -07:00
|
|
|
cargo clean
|
2021-05-13 16:02:31 -07:00
|
|
|
|
2022-05-13 21:56:32 -07:00
|
|
|
test-packages: clean packages
|
2022-05-21 07:03:01 -07:00
|
|
|
docker run -v ${PWD}:/code --rm -it redhat/ubi8 bash -c "rpm -ivh /code/target/packages/\*.rpm && zeronsd --version"
|
|
|
|
|
docker run -v ${PWD}:/code --rm -it debian:latest bash -c "dpkg -i /code/target/packages/zeronsd_${CARGO_VERSION}_amd64.deb && zeronsd --version"
|
|
|
|
|
docker run -v ${PWD}:/code --rm -it ubuntu:focal bash -c "apt update -qq && apt install libssl1.1 libc6 -y && dpkg -i /code/target/packages/zeronsd_${CARGO_VERSION}_amd64.deb && zeronsd --version"
|
|
|
|
|
docker run -v ${PWD}:/code --rm -it ubuntu:jammy bash -c "dpkg -i /code/target/packages/zeronsd-ubuntu22_${CARGO_VERSION}_amd64.deb && zeronsd --version"
|
2021-05-31 23:50:34 -07:00
|
|
|
[ "$$(docker run --rm zerotier/zeronsd:$(CARGO_VERSION) --version)" = "zeronsd $(CARGO_VERSION)" ]
|
2022-05-28 12:56:36 -07:00
|
|
|
[ "$$(docker run --rm zerotier/zeronsd:alpine-$(CARGO_VERSION) --version)" = "zeronsd $(CARGO_VERSION)" ]
|
2021-05-12 02:18:25 -07:00
|
|
|
make packages-out
|
|
|
|
|
|
2022-05-21 10:30:09 -07:00
|
|
|
.PHONY: docker-image docker-image-package \
|
2021-05-13 16:02:31 -07:00
|
|
|
packages packages-out test-packages \
|
2022-05-17 20:27:20 -07:00
|
|
|
clean package-debian package-ubuntu22 \
|
|
|
|
|
package-ubi packagedir
|