name: Build Windows on: push: tags: - 'v*' jobs: build: name: Build Windows runs-on: ubuntu-latest steps: - name: Clone repository run: | git clone ${GITEA_SERVER_URL}/${GITEA_REPOSITORY}.git . git checkout ${GITEA_REF_NAME} env: GITEA_SERVER_URL: http://192.168.120.110:4000 GITEA_REPOSITORY: damai/readflow GITEA_REF_NAME: ${{ github.ref_name }} - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal source $HOME/.cargo/env rustup target add x86_64-pc-windows-gnu - name: Install MinGW run: | apt-get update apt-get install -y gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 - name: Build run: | source $HOME/.cargo/env export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=x86_64-w64-mingw32-gcc cargo build --release --target x86_64-pc-windows-gnu - name: Package run: | mkdir -p dist cp target/x86_64-pc-windows-gnu/release/readflow.exe dist/ cd dist echo "ReadFlow for Windows" > README.txt echo "Version: ${GITEA_REF_NAME}" >> README.txt zip -r readflow-windows-x86_64.zip readflow.exe README.txt - name: Upload to Release run: | TAG="${GITEA_REF_NAME}" TOKEN="${GITEA_TOKEN}" URL="${GITEA_SERVER_URL}" REPO="${GITEA_REPOSITORY}" # Get or create release RELEASE=$(curl -s "${URL}/api/v1/repos/${REPO}/releases/tags/${TAG}" \ -H "Authorization: token ${TOKEN}") RELEASE_ID=$(echo $RELEASE | jq -r '.id') if [ "$RELEASE_ID" == "null" ] || [ -z "$RELEASE_ID" ]; then RELEASE_ID=$(curl -s -X POST "${URL}/api/v1/repos/${REPO}/releases" \ -H "Authorization: token ${TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"tag_name\": \"${TAG}\", \"name\": \"ReadFlow ${TAG}\", \"body\": \"Release ${TAG}\", \"draft\": false}" \ | jq -r '.id') fi echo "Release ID: ${RELEASE_ID}" # Upload asset curl -s -X POST "${URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=readflow-windows-x86_64.zip" \ -H "Authorization: token ${TOKEN}" \ -H "Content-Type: application/zip" \ --data-binary @dist/readflow-windows-x86_64.zip echo "✅ Upload completed!" env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_SERVER_URL: http://192.168.120.110:4000 GITEA_REPOSITORY: damai/readflow GITEA_REF_NAME: ${{ github.ref_name }}