Update setup-fabric-server-full.sh #19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI/CD Pipeline | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| inputs: | |
| mc_versions: | |
| description: "Comma-separated Minecraft versions (e.g., 1.21.5,1.20.1)" | |
| required: false | |
| default: "1.21.5,1.20.1" | |
| server_types: | |
| description: "Comma-separated server types (e.g., fabric,paper,forge,vanilla)" | |
| required: false | |
| default: "fabric,paper,forge,vanilla" | |
| jobs: | |
| test-minecraft-servers: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| mc_version: ${{ fromJson(inputs.mc_versions || '["1.21.5","1.20.1"]') }} | |
| server_type: ${{ fromJson(inputs.server_types || '["fabric","paper","forge","vanilla"]') }} | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v3 | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install -y openjdk-21-jre-headless curl jq | |
| - name: Setup Minecraft Server | |
| id: setup | |
| run: | | |
| MC_VERSION="${{ matrix.mc_version }}" | |
| SERVER_TYPE="${{ matrix.server_type }}" | |
| INSTALL_DIR="$HOME/minecraft-server-$MC_VERSION-$SERVER_TYPE" | |
| echo "🌐 Fetching server JAR URL for version $MC_VERSION and type $SERVER_TYPE..." | |
| SERVER_JAR_URL=$(curl -s "https://mcutils.com/api/v1/jars?version=$MC_VERSION&type=$SERVER_TYPE" | jq -r '.url') | |
| if [ "$SERVER_JAR_URL" == "null" ] || [ -z "$SERVER_JAR_URL" ]; then | |
| echo "❌ Error: Could not find a server JAR for version $MC_VERSION and type $SERVER_TYPE." | |
| exit 1 | |
| fi | |
| echo "✅ Found server JAR URL: $SERVER_JAR_URL" | |
| echo "📂 Creating server folder at $INSTALL_DIR..." | |
| mkdir -p "$INSTALL_DIR" | |
| cd "$INSTALL_DIR" | |
| echo "⬇️ Downloading server JAR..." | |
| curl -L -o "server.jar" "$SERVER_JAR_URL" | |
| echo "✅ Accepting Minecraft EULA..." | |
| echo "eula=true" > eula.txt | |
| echo "⚙️ Starting Minecraft server for version $MC_VERSION and type $SERVER_TYPE..." | |
| java -Xms1G -Xmx1G -jar server.jar nogui & | |
| SERVER_PID=$! | |
| echo "⏳ Waiting for server to start..." | |
| sleep 30 | |
| if ps -p $SERVER_PID > /dev/null; then | |
| echo "✅ Server for version $MC_VERSION and type $SERVER_TYPE started successfully." | |
| kill $SERVER_PID | |
| wait $SERVER_PID || true | |
| else | |
| echo "❌ Error: Server for version $MC_VERSION and type $SERVER_TYPE failed to start." | |
| exit 1 | |
| fi | |
| - name: Clean Up Server Files | |
| run: | | |
| echo "🧹 Cleaning up server files..." | |
| rm -rf "$HOME/minecraft-server-${{ matrix.mc_version }}-${{ matrix.server_type }}" |