diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9aef400 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,111 @@ +name: Build + +on: + push: + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + +jobs: + + createrelease: + name: Create Release + runs-on: [ubuntu-latest] + steps: + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - name: Output Release URL File + run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt + - name: Save Release URL File for publish + uses: actions/upload-artifact@v1 + with: + name: release_url + path: release_url.txt + + build: + name: Build packages + needs: createrelease + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-latest + TARGET: macos + CMD_BUILD: > + pyinstaller -F -w -n PyDPainter -i logo/logo1024.icns cli.py && + cd dist/ && + zip -r9 PyDPainter PyDPainter.app/ + OUT_FILE_NAME: PyDPainter.zip + ASSET_MIME: application/zip + - os: windows-latest + TARGET: windows + CMD_BUILD: pyinstaller -F -w -n PyDPainter -i data/icon.png cli.py + OUT_FILE_NAME: PyDPainter.exe + ASSET_MIME: application/vnd.microsoft.portable-executable + steps: + - uses: actions/checkout@v1 + - name: Set up Python 3.12 + uses: actions/setup-python@v2 + with: + python-version: 3.12 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pygame + pip install numpy + - name: Build with pyinstaller for ${{matrix.TARGET}} + run: ${{matrix.CMD_BUILD}} + - name: Load Release URL File from release job + uses: actions/download-artifact@v1 + with: + name: release_url + - name: Get Release File Name & Upload URL + id: get_release_info + shell: bash + run: | + value=`cat release_url/release_url.txt` + echo ::set-output name=upload_url::$value + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.get_release_info.outputs.upload_url }} + asset_path: ./dist/${{ matrix.OUT_FILE_NAME}} + asset_name: ${{ matrix.OUT_FILE_NAME}} + asset_content_type: ${{ matrix.ASSET_MIME}} + - name: Output Release URL File + run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt + - name: Save Release URL File for publish + uses: actions/upload-artifact@v1 + with: + name: release_url + path: release_url.txt + - name: Load Release URL File from release job + uses: actions/download-artifact@v1 + with: + name: release_url + - name: Get Release File Name & Upload URL + id: get_release_info + shell: bash + run: | + value=`cat release_url/release_url.txt` + echo ::set-output name=upload_url::$value + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.get_release_info.outputs.upload_url }} + asset_path: ./dist/${{ matrix.OUT_FILE_NAME}} + asset_name: ${{ matrix.OUT_FILE_NAME}} + asset_content_type: ${{ matrix.ASSET_MIME}} diff --git a/logo/logo1024.icns b/logo/logo1024.icns new file mode 100644 index 0000000..9060d42 Binary files /dev/null and b/logo/logo1024.icns differ diff --git a/logo/logo1024.png b/logo/logo1024.png new file mode 100644 index 0000000..b59a23d Binary files /dev/null and b/logo/logo1024.png differ