name: Build Windows Executable on: push: tags: - 'v*' workflow_dispatch: inputs: version: description: 'Version tag' required: false default: 'latest' jobs: build-windows: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pyinstaller - name: Create data directory structure run: | if not exist "dist\data" mkdir dist\data copy data\a.csv dist\data\ copy data\b.csv dist\data\ - name: Build GUI executable run: | pyinstaller --clean --noconfirm gui.spec - name: Build CLI executable run: | pyinstaller --clean --noconfirm main.spec - name: Create release package run: | if not exist "release" mkdir release copy dist\searchdomain_gui.exe release\ copy dist\searchdomain_cli.exe release\ copy data\a.csv release\data\ copy data\b.csv release\data - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: windows-executables path: release/ - name: Create Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: release/* draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}