on: push: tags: - 'v*.*.*' workflow_dispatch: jobs: build: runs-on: docker 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: | pip install -r requirements.txt pip install pyinstaller - name: Build with PyInstaller run: | pyinstaller --onefile --console --name TinyWeb app.py - name: Upload artifact uses: actions/upload-artifact@v4 with: name: TinyWeb-linux-x64 path: dist/TinyWeb if-no-files-found: error release: needs: build runs-on: docker if: startsWith(github.ref, 'refs/tags/v') steps: - name: Download artifact uses: actions/download-artifact@v4 with: name: TinyWeb-linux-x64 - name: Make executable run: chmod +x TinyWeb-linux-x64 - name: Create Release uses: actions/forgejo-release@v2 with: direction: upload release-dir: . override: true prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') }}