Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 62 additions & 8 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,68 @@ jobs:
go-version: ">=1.19.3"
- run: apt update && apt install -y make
- run: make build-tree
- name: Get registry binary
uses: robinraju/release-downloader@v1.7
- name: Checkout druid-cli
uses: actions/checkout@v3
with:
repository: "highcard-dev/druid-cli"
latest: true
fileName: "druid"
repository: highcard-dev/druid-cli
ref: feat/druid-k8s-runtime-owner
path: .ci/druid-cli
token: ${{ secrets.GO_REPO_TOKEN }}
- run: chmod +x ./druid
- name: Build druid
working-directory: .ci/druid-cli
run: make build
- name: Install druid
run: mv ./druid /usr/local/bin/druid
- run: ./scripts/validate_all_scrolls.sh
run: |
install .ci/druid-cli/bin/druid /usr/local/bin/druid
install .ci/druid-cli/bin/druid-client /usr/local/bin/druid-client
- name: Validate Minecraft Vanilla scrolls
run: |
set -euo pipefail
for dir in ./scrolls/minecraft/minecraft-vanilla/*; do
[ -f "$dir/scroll.yaml" ] || continue
druid validate "$dir"
done
- name: Login to registry
if: github.event.pull_request.head.repo.full_name == github.repository
run: druid-client login --host ${{ secrets.SCROLL_REGISTRY_HOST }} --user '${{ secrets.SCROLL_REGISTRY_USER }}' --password ${{ secrets.SCROLL_REGISTRY_PASSWORD }}
- name: Ensure experimental registry project
if: github.event.pull_request.head.repo.full_name == github.repository
shell: bash
run: |
set -euo pipefail
registry_host="${{ secrets.SCROLL_REGISTRY_HOST }}"
registry_host="${registry_host#http://}"
registry_host="${registry_host#https://}"
registry_host="${registry_host%%/*}"
status="$(curl -sS -o /tmp/druid-project-create.json -w '%{http_code}' \
-u '${{ secrets.SCROLL_REGISTRY_USER }}:${{ secrets.SCROLL_REGISTRY_PASSWORD }}' \
-H 'Content-Type: application/json' \
-X POST "https://${registry_host}/api/v2.0/projects" \
--data '{"project_name":"druid-team-experimental","metadata":{"public":"false"},"storage_limit":-1}')"
case "$status" in
201|409) ;;
*) cat /tmp/druid-project-create.json; exit 1 ;;
esac
- name: Push experimental Minecraft Vanilla artifacts
if: github.event.pull_request.head.repo.full_name == github.repository
shell: bash
run: |
set -euo pipefail
pr_number="${{ github.event.pull_request.number }}"
for dir in ./scrolls/minecraft/minecraft-vanilla/*; do
[ -f "$dir/scroll.yaml" ] || continue
version="$(basename "$dir")"
druid-client push "artifacts.druid.gg/druid-team-experimental/scroll-minecraft-vanilla:${version}-pr${pr_number}" "$dir" \
-p main=25565 -p rcon=25575 \
-i artifacts.druid.gg/druid-team/druid:stable-nix \
--min-disk 3Gi --min-ram 512Mi --min-cpu 0.25 \
--smart --category minecraft

if [ "$version" = "1.21.7" ]; then
druid-client push "artifacts.druid.gg/druid-team-experimental/scroll-minecraft-vanilla:latest-pr${pr_number}" "$dir" \
-p main=25565 -p rcon=25575 \
-i artifacts.druid.gg/druid-team/druid:stable-nix \
--min-disk 3Gi --min-ram 512Mi --min-cpu 0.25 \
--smart --category minecraft
fi
done
61 changes: 34 additions & 27 deletions scrolls/minecraft/minecraft-vanilla/.build/scroll.yaml.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,59 @@ ports:
protocol: tcp
port: 25565
sleep_handler: packet_handler/minecraft.lua
mandatory: true
start_delay: 10
finish_after_command: install
- name: rcon
protocol: tcp
port: 25575
init: "start"
serve: "start"
commands:
start:
needs: [install]
dependencies: [jdk{{ .Vars.jdkVersion }}]
run: restart
procedures:
- mode: exec
data:
- id: start
image: eclipse-temurin:{{ .Vars.jdkVersion }}-jre
expectedPorts:
- name: main
keepAliveTraffic: 10kb/5m
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- bash
- ./start.sh
stop:
run: always
procedures:
- mode: rcon
data: stop
- type: signal
target: start
signal: SIGTERM
install:
run: once
dependencies: [wget, cacert]
procedures:
- mode: exec
data:
- wget
- -q
- -O
- server.jar
- {{ .Vars.jarUrl }}
- mode: exec
data:
- bash
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- -c
- echo eula=true > eula.txt
- >-
apk add --no-cache ca-certificates wget
&& wget -q -O server.jar {{ .Vars.jarUrl }}
&& echo eula=true > eula.txt
update:
procedures:
- mode: exec
data:
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- $SCROLL_DIR/update.sh
- mode: exec
data:
- bash
- -c
- echo eula=true > eula.txt
plugins:
rcon: {}
- apk add --no-cache jq yq moreutils && ./update.sh && echo eula=true > eula.txt
4 changes: 2 additions & 2 deletions scrolls/minecraft/minecraft-vanilla/.build/vars.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"1.17": {
"jarUrl": "https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar",
"jdkVersion": "16"
"jdkVersion": "17"
},
"1.17.1": {
"jarUrl": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar",
"jdkVersion": "16"
"jdkVersion": "17"
},
"1.18": {
"jarUrl": "https://launcher.mojang.com/v1/objects/3cf24a8694aca6267883b17d934efacc5e44440d/server.jar",
Expand Down
61 changes: 34 additions & 27 deletions scrolls/minecraft/minecraft-vanilla/1.17.1/scroll.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,59 @@ ports:
protocol: tcp
port: 25565
sleep_handler: packet_handler/minecraft.lua
mandatory: true
start_delay: 10
finish_after_command: install
- name: rcon
protocol: tcp
port: 25575
init: "start"
serve: "start"
commands:
start:
needs: [install]
dependencies: [jdk16]
run: restart
procedures:
- mode: exec
data:
- id: start
image: eclipse-temurin:17-jre
expectedPorts:
- name: main
keepAliveTraffic: 10kb/5m
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- bash
- ./start.sh
stop:
run: always
procedures:
- mode: rcon
data: stop
- type: signal
target: start
signal: SIGTERM
install:
run: once
dependencies: [wget, cacert]
procedures:
- mode: exec
data:
- wget
- -q
- -O
- server.jar
- https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar
- mode: exec
data:
- bash
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- -c
- echo eula=true > eula.txt
- >-
apk add --no-cache ca-certificates wget
&& wget -q -O server.jar https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar
&& echo eula=true > eula.txt
update:
procedures:
- mode: exec
data:
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- $SCROLL_DIR/update.sh
- mode: exec
data:
- bash
- -c
- echo eula=true > eula.txt
plugins:
rcon: {}
- apk add --no-cache jq yq moreutils && ./update.sh && echo eula=true > eula.txt
61 changes: 34 additions & 27 deletions scrolls/minecraft/minecraft-vanilla/1.17/scroll.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,59 @@ ports:
protocol: tcp
port: 25565
sleep_handler: packet_handler/minecraft.lua
mandatory: true
start_delay: 10
finish_after_command: install
- name: rcon
protocol: tcp
port: 25575
init: "start"
serve: "start"
commands:
start:
needs: [install]
dependencies: [jdk16]
run: restart
procedures:
- mode: exec
data:
- id: start
image: eclipse-temurin:17-jre
expectedPorts:
- name: main
keepAliveTraffic: 10kb/5m
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- bash
- ./start.sh
stop:
run: always
procedures:
- mode: rcon
data: stop
- type: signal
target: start
signal: SIGTERM
install:
run: once
dependencies: [wget, cacert]
procedures:
- mode: exec
data:
- wget
- -q
- -O
- server.jar
- https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar
- mode: exec
data:
- bash
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- -c
- echo eula=true > eula.txt
- >-
apk add --no-cache ca-certificates wget
&& wget -q -O server.jar https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar
&& echo eula=true > eula.txt
update:
procedures:
- mode: exec
data:
- image: alpine:3.20
mounts:
- path: /server
sub_path: data
working_dir: /server
command:
- sh
- $SCROLL_DIR/update.sh
- mode: exec
data:
- bash
- -c
- echo eula=true > eula.txt
plugins:
rcon: {}
- apk add --no-cache jq yq moreutils && ./update.sh && echo eula=true > eula.txt
Loading
Loading