name: Build Workflow for epson_print_conf.exe/zip on: push: tags: - "v*.*.*" jobs: build-windows: runs-on: windows-latest steps: - name: Git Checkout uses: actions/checkout@v4 with: ref: main fetch-depth: 0 # Fetch all history for accurate commits and tags - name: Update VERSION in python file ui.py; commit and push updates run: | $filePath = "ui.py" $VERSION = "${{ github.ref_name }}" if ($VERSION.StartsWith('v')) { $VERSION = $VERSION.Substring(1) } (Get-Content $filePath) -replace '^VERSION = ".*"$', "VERSION = `"$VERSION`"" | Set-Content $filePath git config --local user.name "github-actions[bot]" git config --local user.email "github-actions[bot]@users.noreply.github.com" git add $filePath git commit -m "Update VERSION to ${{ github.ref_name }}" git remote set-url origin https://${GITHUB_USER}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} git push origin main - name: Install Python uses: actions/setup-python@v5 with: python-version: '3.11' architecture: 'x64' - name: Install Python Requirements run: | python -m pip install --upgrade pip #pip install git+https://github.com/pyinstaller/pyinstaller@develop pip install pyinstaller pip install Pillow pip install -r requirements.txt - name: Run PyInstaller to create epson_print_conf.exe run: python -m PyInstaller epson_print_conf.spec -- --default - name: Zip the epson_print_conf.exe asset to epson_print_conf.zip run: | Compress-Archive dist/epson_print_conf.exe dist/epson_print_conf.zip shell: pwsh - name: Generate Changelog run: > echo "The *epson_print_conf.exe* executable file in the *epson_print_conf.zip* archive within the assets below is auto-generated by a [GitHub Action](.github/workflows/build.yml).

Check the [History of modifications](https://github.com/Ircama/epson_print_conf/commits/main/). " > ${{ github.workspace }}-CHANGELOG.txt - name: Create Release, uploading the epson_print_conf.zip asset uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: body_path: ${{ github.workspace }}-CHANGELOG.txt files: dist/epson_print_conf.zip append_body: true generate_release_notes: false - name: Remove old releases uses: Nats-ji/delete-old-releases@v1 with: token: ${{ secrets.GITHUB_TOKEN }} keep-count: 1 keep-old-minor-releases: false keep-old-minor-releases-count: 1 remove-tags: true