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: Download SummerCart64 repository # uses: actions/checkout@v3 # - name: Set SC64 version # uses: frabert/replace-string-action@v2 # id: sc64version # with: # pattern: '\/' # string: '-${{ github.ref_name }}' # replace-with: '-' # - name: Build everything # run: ./docker_build.sh release --force-clean # env: # SC64_VERSION: ${{ steps.sc64version.outputs.replaced }} # - name: Upload artifact # uses: actions/upload-artifact@v3 # with: # name: sc64-pkg${{ steps.sc64version.outputs.replaced }} # path: | # sc64-extra${{ steps.sc64version.outputs.replaced }}.zip # sc64-firmware${{ steps.sc64version.outputs.replaced }}.bin # - name: Upload release assets # if: github.event_name == 'release' && github.event.action == 'created' # uses: softprops/action-gh-release@v0.1.15 # with: # files: | # sc64-extra${{ steps.sc64version.outputs.replaced }}.zip # sc64-firmware${{ steps.sc64version.outputs.replaced }}.bin build-deployer: strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] include: - os: windows-latest # pyinstaller-build-options: --target-arch=64bit # pyinstaller-options: --onefile --console --icon ../../assets/sc64_logo_256_256.png executable-name: sc64deployer.exe package-name: sc64deployer-windows # package-options: -c -a -f # package-extension: zip - os: ubuntu-latest # pyinstaller-options: --onefile packages: libudev-dev executable-name: sc64deployer package-name: sc64deployer-linux # package-options: -czf # package-extension: tar.gz - os: macos-latest # pyinstaller-options: --onedir --console --icon ../../assets/sc64_logo_256_256.png executable-name: sc64deployer package-name: sc64deployer-macos # package-options: -czf # package-extension: tgz runs-on: ${{ matrix.os }} steps: - name: Download SummerCart64 repository uses: actions/checkout@v3 - name: Set SC64 version uses: frabert/replace-string-action@v2 id: sc64version with: pattern: '\/' string: '-${{ github.ref_name }}' replace-with: '-' - name: Install required linux packages if: matrix.packages run: apt update && apt -y install ${{ matrix.packages }} - name: Build deployer run: cargo b -r working-directory: sw/deployer # - name: Setup python # uses: actions/setup-python@v4 # with: # python-version: '3.11' # - name: Download pyinstaller repository # uses: actions/checkout@v3 # with: # repository: 'pyinstaller/pyinstaller' # ref: 'v5.8.0' # path: pyinstaller # - name: Compile and install pyinstaller # run: | # pip3 uninstall pyinstaller # pip3 install wheel # pushd bootloader # python3 ./waf all ${{ matrix.pyinstaller-build-options }} # popd # pip3 install . # working-directory: pyinstaller # - name: Install sc64.py requirements # run: pip3 install -r requirements.txt # working-directory: sw/pc # - name: Create sc64.py executable # run: python3 -m PyInstaller --clean ${{ 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 }}${{ steps.sc64version.outputs.replaced }}.${{ matrix.package-extension }} * # popd # working-directory: sw/pc - name: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ matrix.package-name }}${{ steps.sc64version.outputs.replaced }} path: sw/deployer/target/release/${{ matrix.executable-name }} # path: sw/pc/package/${{ matrix.package-name }}${{ steps.sc64version.outputs.replaced }}.${{ 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 }}${{ steps.sc64version.outputs.replaced }}.${{ matrix.package-extension }}