name: Build plugin on: push: branches: [trunk] tags: ["v*"] pull_request: branches: [trunk] jobs: build: runs-on: [docker, ubuntu-24.04] steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: | apt-get update -qq apt-get install -y -qq make git wget unzip - name: Install Godot run: | wget -q https://github.com/godotengine/godot/releases/download/4.4.1-stable/Godot_v4.4.1-stable_linux.x86_64.zip unzip -q Godot_v4.4.1-stable_linux.x86_64.zip mkdir -p "$HOME/.local/bin" mv Godot_v4.4.1-stable_linux.x86_64 "$HOME/.local/bin/godot" chmod +x "$HOME/.local/bin/godot" echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Build env: GODOT: godot run: make dist - name: Create release if: startsWith(github.ref, 'refs/tags/v') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | TAG="${GITHUB_REF_NAME}" API="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}" # Create the release curl -sf -X POST "${API}/releases" \ -H "Authorization: token ${GITHUB_TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"${TAG}\",\"name\":\"${TAG}\"}" \ -o /tmp/release.json RELEASE_ID=$(python3 -c "import json; print(json.load(open('/tmp/release.json'))['id'])") # Upload assets for FILE in dist/itch.zip dist/itch.zip.sha256.txt; do NAME=$(basename "$FILE") curl -sf -X POST \ "${API}/releases/${RELEASE_ID}/assets?name=${NAME}" \ -H "Authorization: token ${GITHUB_TOKEN}" \ -H "Content-Type: application/octet-stream" \ --data-binary "@${FILE}" done