name: Build Windows on: push: tags: - 'v*' workflow_dispatch: jobs: build-windows: name: Build Windows runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - 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: | sudo apt-get update sudo apt-get install -y mingw-w64 x86_64-w64-mingw32-posix-runtime libssl-dev pkg-config - name: Install GTK dependencies run: | sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev libjavascriptcoregtk-4.0-dev libsoup2.4-dev - 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: ${{ github.ref_name }}" >> README.txt echo "" >> README.txt echo "Usage: Double click readflow.exe" >> README.txt zip -r readflow-windows-x86_64.zip readflow.exe README.txt - name: Upload to Release env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_URL: http://192.168.120.110:4000 REPO: damai/readflow TAG: ${{ github.ref_name }} run: | # Get release by tag RELEASE=$(curl -s "${GITEA_URL}/api/v1/repos/${REPO}/releases/tags/${TAG}" \ -H "Authorization: token ${GITEA_TOKEN}") RELEASE_ID=$(echo $RELEASE | jq -r '.id') if [ "$RELEASE_ID" == "null" ]; then # Create release RELEASE_ID=$(curl -s -X POST "${GITEA_URL}/api/v1/repos/${REPO}/releases" \ -H "Authorization: token ${GITEA_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 "${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=readflow-windows-x86_64.zip" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/zip" \ --data-binary @dist/readflow-windows-x86_64.zip echo "Upload completed!"