Skip to content

Deploy Game Server

Deploy Game Server #16

Workflow file for this run

name: Deploy Minecraft server
on: workflow_dispatch
jobs:
deploy-server:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/[email protected]
- name: Install Java
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin
- name: Install markdown command
run: sudo apt-get install -y markdown
- name: Make Packwiz executable
run: chmod +x ./bin/packwiz
- name: Make Dasel executable
run: chmod +x ./bin/dasel
- name: Run the Packwiz server
run: nohup bash -c ""./bin/packwiz" serve --basic -p 9090 2>&1 &"
- name: Make test install directory
run: mkdir ./install
- name: Download Packwiz Installer Bootstrap
working-directory: ./install
run: wget https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar
- name: Test installing the modpack
working-directory: ./install
run: java -jar "./packwiz-installer-bootstrap.jar" --no-gui http://localhost:9090/pack.toml
- name: Set modpack name
run: ./bin/dasel put -f ./config/bcc-common.toml -r toml -v Logicraft general.modpackName
- name: Set modpack curseforge project id
run: ./bin/dasel put -f ./config/bcc-common.toml -r toml -v 323471 general.modpackProjectID
- name: Set modpack version
run: ./bin/dasel put -f ./config/bcc-common.toml -r toml -v `date +%Y%m%d%H%M%S` general.modpackVersion
- name: Refresh Packwiz indices
run: ./bin/packwiz refresh
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.IONOS_LOGICRAFT_WEB_SSH_KEY }}
known_hosts: 'just-a-placeholder-so-we-dont-get-errors'
- name: Adding Known Hosts
run: ssh-keyscan -H ${{ secrets.IONOS_LOGICRAFT_WEB_ADDRESS }} >> ~/.ssh/known_hosts
- name: Cleanup website root
run: ssh ${{ secrets.IONOS_LOGICRAFT_SSH_USERNAME }}@${{ secrets.IONOS_LOGICRAFT_WEB_ADDRESS }} -i /home/runner/.ssh/id_rsa 'rm -rf /var/www/logicraft.cc/html/*'
- name: Generate index page
run: markdown README.md > index.html
- name: Copy website contents
run: rsync -avzn --exclude=.git ./* ${{ secrets.IONOS_LOGICRAFT_SSH_USERNAME }}@${{ secrets.IONOS_LOGICRAFT_WEB_ADDRESS }}:/var/www/logicraft.cc/html