Compare commits

...

5 Commits

16 changed files with 196 additions and 35 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
gitolite/.env
ansible/.env
ansible/known_hosts
*/out/image-id

View File

@ -1,7 +1,7 @@
REGISTRY=registry.monotremata.xyz
PLATFORMS=linux/amd64,linux/arm64
IMAGES=agate buildx-qemu mpd pleroma rainloop tor transmission webdav
IMAGES=agate buildx-qemu mpd pleroma rainloop rsync xmpp-ci static-page-builder tor transmission webdav
.PHONY: all $(IMAGES)
@ -24,6 +24,15 @@ pleroma:
rainloop:
$(BUILDX)
rsync:
$(BUILDX)
xmpp-ci:
$(BUILDX)
static-page-builder:
$(BUILDX)
tor:
$(BUILDX)

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile
out/image-id: Dockerfile
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile
@ -17,3 +19,6 @@ buildx: Dockerfile
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,7 +3,7 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
ARCH=$(shell uname -m)
@ -15,10 +15,12 @@ else
TARGETARCH=amd64
endif
build: Dockerfile entrypoint.sh
out/image-id: Dockerfile entrypoint.sh
mkdir -p $(@D)
docker build -t $(IMG) --build-arg TARGETARCH=$(TARGETARCH) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh
@ -27,3 +29,6 @@ buildx: Dockerfile entrypoint.sh
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile
out/image-id: Dockerfile
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile
@ -17,3 +19,6 @@ buildx: Dockerfile
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile entrypoint.sh
out/image-id: Dockerfile entrypoint.sh
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh
@ -17,3 +19,6 @@ buildx: Dockerfile entrypoint.sh
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile entrypoint.sh nginx.conf
out/image-id: Dockerfile entrypoint.sh nginx.conf
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh nginx.conf
@ -17,3 +19,6 @@ buildx: Dockerfile entrypoint.sh nginx.conf
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile entrypoint.sh
out/image-id: Dockerfile entrypoint.sh
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh
@ -17,3 +19,6 @@ buildx: Dockerfile entrypoint.sh
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -20,9 +20,10 @@ fi
KNOWN_HOSTS="${KNOWN_HOSTS:=${PLUGIN_KNOWN_HOSTS}}"
SOURCE="${SOURCE:-${PLUGIN_SOURCE}}"
if [ -z "$SOURCE" ]; then
echo "'source' must be specified"
SOURCES="${SOURCES:-${PLUGIN_SOURCES}}"
SOURCES=$(echo "$SOURCES" | tr ',' ' ')
if [ -z "$SOURCES" ]; then
echo "specify at least one source"
exit 1
fi
@ -48,4 +49,7 @@ known_hosts_file="${HOME}/.ssh/known_hosts"
# run rsync
# shellcheck disable=SC2086
exec rsync $ARGS "${SOURCE}" "${USER}"@"${HOST}":"${TARGET}"
for SOURCE in $SOURCES; do
echo "copying '$SOURCE' to '$TARGET'"
rsync $ARGS "${SOURCE}" "${USER}"@"${HOST}":"${TARGET}"
done

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile
out/image-id: Dockerfile
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile
@ -17,3 +19,6 @@ buildx: Dockerfile
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile entrypoint.sh
out/image-id: Dockerfile entrypoint.sh
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh
@ -17,3 +19,6 @@ buildx: Dockerfile entrypoint.sh
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile
out/image-id: Dockerfile
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile
@ -17,3 +19,6 @@ buildx: Dockerfile
--tag $(IMG) \
--push \
.
clean:
rm -rf out

View File

@ -3,12 +3,14 @@ REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: build push buildx
.PHONY: push buildx clean
build: Dockerfile nginx.conf
out/image-id: Dockerfile nginx.conf
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: build
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile nginx.conf
@ -17,3 +19,6 @@ buildx: Dockerfile nginx.conf
--tag $(IMG) \
--push \
.
clean:
rm -rf out

18
xmpp-ci/Dockerfile Normal file
View File

@ -0,0 +1,18 @@
FROM alpine:3.16
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh && \
apk add --no-cache go-sendxmpp && \
addgroup \
--gid 10001 \
sendxmpp && \
adduser \
--uid 10000 \
--ingroup sendxmpp \
--disabled-password \
--shell /sbin/nologin \
sendxmpp
USER sendxmpp
ENTRYPOINT ["/entrypoint.sh"]

24
xmpp-ci/Makefile Normal file
View File

@ -0,0 +1,24 @@
IMG_NAME=xmpp-ci
REGISTRY=registry.monotremata.xyz
IMG=$(REGISTRY)/$(IMG_NAME)
PLATFORMS=linux/amd64,linux/arm64
.PHONY: push buildx clean
out/image-id: Dockerfile entrypoint.sh
mkdir -p $(@D)
docker build -t $(IMG) .
echo $(IMG) > $@
push: out/image-id
docker image push $(IMG)
buildx: Dockerfile entrypoint.sh
docker buildx build \
--platform $(PLATFORMS) \
--tag $(IMG) \
--push \
.
clean:
rm -rf out

55
xmpp-ci/entrypoint.sh Normal file
View File

@ -0,0 +1,55 @@
#!/bin/sh
USERNAME="${USERNAME:-${PLUGIN_USERNAME}}"
if [ -z "$USERNAME" ]; then
echo "'username' must specified"
exit 1
fi
PASSWORD="${PASSWORD:-${PLUGIN_PASSWORD}}"
if [ -z "$PASSWORD" ]; then
echo "'password' must specified"
exit 1
fi
RECIPIENT="${RECIPIENT:-${PLUGIN_RECIPIENT}}"
if [ -z "$RECIPIENT" ]; then
echo "'recipient' must specified"
exit 1
fi
em () {
echo "_${1}_"
}
monospace () {
echo '`'"${1}"'`'
}
strong () {
echo "*${1}*"
}
strike () {
echo "~${1}~"
}
build_line () {
echo "$1: $2"
}
message () {
echo repo: "${CI_REPO_NAME}"
echo status: "${CI_BUILD_STATUS}"
echo branch: "${CI_REPO_DEFAULT_BRANCH}"
echo ""
echo commit msg:
echo "${CI_COMMIT_MESSAGE}"
}
message
message | \
go-sendxmpp \
--username="${USERNAME}"\
--password="${PASSWORD}" \
"${RECIPIENT}"