diff --git a/.github/workflows/aseprite_build.yml b/.github/workflows/aseprite_build.yml deleted file mode 100644 index a0ecd38..0000000 --- a/.github/workflows/aseprite_build.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Build and deploy Aseprite - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - push: - branches: - - master - - -env: - BUILD_TYPE: Release - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - -jobs: - check-version: - name: Check latest Aseprite release - runs-on: ubuntu-latest - outputs: - download_url: ${{ steps.version_info.outputs.download_url }} - latest_tag: ${{ steps.version_info.outputs.latest_tag }} - should_build: ${{ steps.should_build.outputs.should_build }} - upload_url: ${{ steps.create_release.outputs.upload_url }} - steps: - - name: Get latest version info - id: version_info - run: | - data=$(curl -sL https://api.github.com/repos/aseprite/aseprite/releases/latest) - LATEST_TAG=$(echo "${data}" | jq -r '.tag_name') - DOWNLOAD_URL=$(echo "${data}" | jq -r '.assets[].browser_download_url') - VERSION_INFO=$(echo "${data}" | jq -r '.body') - - echo "${LATEST_TAG}" > ${LATEST_TAG}.txt - echo "::set-output name=latest_tag::${LATEST_TAG}" - echo "::set-output name=download_url::${DOWNLOAD_URL}" - echo "::set-output name=version_info::${VERSION_INFO}" - - name: Load version from cache - id: version_check - uses: actions/cache@v2 - with: - path: ${{ steps.version_info.outputs.latest_tag }}.txt - key: cached_version - - name: Should we start new build? - id: should_build - if: steps.version_check.outputs.cache-hit != 'true' - run: echo "::set-output name=should_build::true" - - name: Create Release - id: create_release - if: steps.should_build.outputs.should_build - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.version_info.outputs.latest_tag }} - release_name: Release Aseprite ${{ steps.version_info.outputs.latest_tag }} - body: | - ${{ steps.version_info.outputs.version_info }} - draft: false - prerelease: false - - build-aseprite: - name: Build Aseprite - needs: check-version - if: ${{ needs.check-version.outputs.should_build }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest, ubuntu-latest, macOS-latest] - fail-fast: false - steps: - - name: (Windows) Install dependencies - if: matrix.os == 'windows-latest' - uses: seanmiddleditch/gha-setup-ninja@v1 - - name: (Ubuntu) Install dependencies - if: matrix.os == 'ubuntu-latest' - run: sudo apt install -y cmake ninja-build libxcursor-dev libxi-dev libgl1-mesa-dev - - name: (macOS) Install dependencies - if: matrix.os == 'macOS-latest' - run: brew install ninja p7zip - - name: Get Skia from cache - id: skia-cache - uses: actions/cache@v2 - with: - path: skia - key: skia-${{ matrix.os }}-cache - - name: Download Skia if not in cache - if: steps.skia-cache.outputs.cache-hit != 'true' - run: | - curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m81-b607b32047/Skia-${{ runner.os }}-Release-X64.zip - unzip Skia-${{ runner.os }}-Release-X64.zip -d skia - - name: Download Aseprite release - run: | - curl -o Aseprite-source.zip -L ${{ needs.check-version.outputs.download_url }} - unzip Aseprite-source.zip -d aseprite - mkdir -p aseprite/build - - name: (Windows) Set architecture for the produced binary - if: matrix.os == 'windows-latest' - shell: cmd - run: call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64 - - name: (Windows) Setting Visual Studio build environment variables and paths - if: matrix.os == 'windows-latest' - uses: seanmiddleditch/gha-setup-vsdevenv@v1 - - name: (Windows) Run CMake - if: matrix.os == 'windows-latest' - working-directory: aseprite/build - shell: cmd - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH='C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/' -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. - - name: (Ubuntu) Run CMake - if: matrix.os == 'ubuntu-latest' - working-directory: aseprite/build - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. - - name: (macOS) Run CMake - if: matrix.os == 'macOS-latest' - working-directory: aseprite/build - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. - - name: Run Ninja - working-directory: aseprite/build - run: ninja aseprite - - name: Clean up build - working-directory: aseprite/build/bin - shell: bash - run: rm -f gen modp_b64_gen gen.exe gen.exe.manifest modp_b64_gen.exe modp_b64_gen.exe.manifest - - name: (Windows) Make portable zip - working-directory: aseprite/build/bin - run: echo '# This file is here so Aseprite behaves as a portable program' > aseprite.ini - - name: Create release - working-directory: aseprite/build/bin - run: 7z -tzip a Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip * - - name: Upload release - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.check-version.outputs.upload_url }} - asset_path: aseprite/build/bin/Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip - asset_name: Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip - asset_content_type: application/zip