name: build on: push: branches: - main pull_request: branches: - main release: types: - created workflow_dispatch: jobs: build-fw-hw-sw: runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@v3 - name: Build script run: ./docker_build.sh release --force-clean - name: Upload artifact uses: actions/upload-artifact@v3 with: name: SC64 path: SC64.zip - name: Upload release assets if: github.event_name == 'release' && github.event.action == 'created' uses: softprops/action-gh-release@v0.1.15 with: files: | SC64.zip sc64_firmware.bin build-apps: strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] include: - os: windows-latest pyinstaller-options: --console --icon ../../assets/sc64_logo_256_256.png package-name: sc64-windows package-options: -c -a -f package-extension: zip - os: ubuntu-latest package-name: sc64-linux package-options: -czf package-extension: tgz - os: macos-latest pyinstaller-options: --console --icon ../../assets/sc64_logo_256_256.png package-name: sc64-macos package-options: -czf package-extension: tgz runs-on: ${{ matrix.os }} steps: - name: Git checkout uses: actions/checkout@v3 - name: Setup python uses: actions/setup-python@v4 with: python-version: 3.11 - name: Install python requirements run: pip install -r requirements.txt pyinstaller working-directory: sw/pc - name: Create sc64 executable run: pyinstaller --clean --onefile ${{ matrix.pyinstaller-options }} sc64.py working-directory: sw/pc - name: Package executable run: | mkdir package pushd dist tar ${{ matrix.package-options }} ../package/${{ matrix.package-name }}.${{ matrix.package-extension }} * popd working-directory: sw/pc - name: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ matrix.package-name }} path: sw/pc/package/${{ matrix.package-name }}.${{ matrix.package-extension }} - name: Upload release assets if: github.event_name == 'release' && github.event.action == 'created' uses: softprops/action-gh-release@v0.1.15 with: files: sw/pc/package/${{ matrix.package-name }}.${{ matrix.package-extension }}