name: Build Latest and Release on: workflow_dispatch: inputs: doRelease: description: 'Publish new release' type: boolean default: false required: false tag: type: string description: 'Release version tag (e.g. v1.2.3)' required: true ref: type: string description: 'Git ref from which to release' required: true default: 'main' env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true jobs: build-win-x64: runs-on: windows-latest steps: - name: Check-out repository uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: | **/requirements*.txt architecture: 'x64' - name: Install Dependencies run: | pip install -r requirements.txt - name: Build Executable with Nuitka uses: Nuitka/Nuitka-Action@main with: nuitka-version: main script-name: gofilecli.py onefile: true - name: Upload Artifact[win-x64] uses: actions/upload-artifact@v4 with: name: GoFileCLI_win-x64 path: | build/*.exe build-linux-x64: runs-on: ubuntu-latest steps: - name: Check runner architecture run: uname -m - name: Check-out repository uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: | **/requirements*.txt architecture: 'x64' - name: Install Dependencies run: | pip install -r requirements.txt - name: Build Executable with Nuitka uses: Nuitka/Nuitka-Action@main with: nuitka-version: main script-name: gofilecli.py onefile: true - name: Upload Artifact[linux-x64] uses: actions/upload-artifact@v4 with: name: GoFileCLI_linux-x64 path: | build/*.bin build-macos: runs-on: macos-latest steps: - name: Check runner architecture run: uname -m - name: Check-out repository uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: | **/requirements*.txt architecture: 'arm64' - name: Install Dependencies run: | pip install -r requirements.txt pip install nuitka - name: Build Executable with Nuitka # --macos-app-icon=resources/icon.icns run: | python -m nuitka --standalone --assume-yes-for-downloads --output-dir=dist --macos-create-app-bundle --macos-target-arch=arm64 gofilecli.py python -m nuitka --standalone --assume-yes-for-downloads --output-dir=dist_x86_64 --macos-create-app-bundle --macos-target-arch=x86_64 gofilecli.py - name: Upload Artifact[osx-arm64] uses: actions/upload-artifact@v4 with: name: GoFileCLI_osx-x64 path: | dist_x86_64/* - name: Upload Artifact[osx-arm64] uses: actions/upload-artifact@v4 with: name: GoFileCLI_osx-arm64 path: | build/*