diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 740a2ef713..f2d0cd0963 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -37,7 +37,7 @@ jobs: fetch-depth: 1 - name: Fetch tags (for git describe) - run: git fetch --no-recurse-submodules --depth=1 origin '+refs/tags/*:refs/tags/*' + run: git fetch --no-recurse-submodules --force --depth=1 origin '+refs/tags/*:refs/tags/*' - name: Install pixi run: | @@ -51,7 +51,7 @@ jobs: uses: https://github.com/actions/cache/restore@v4 with: path: /tmp/ccache-kindred-create - key: ccache-build-${{ github.ref_name }}-${{ github.sha }} + key: ccache-build-${{ github.ref_name }}-${{ github.run_id }} restore-keys: | ccache-build-${{ github.ref_name }}- ccache-build-main- @@ -75,7 +75,7 @@ jobs: uses: https://github.com/actions/cache/save@v4 with: path: /tmp/ccache-kindred-create - key: ccache-build-${{ github.ref_name }}-${{ github.sha }} + key: ccache-build-${{ github.ref_name }}-${{ github.run_id }} - name: Run C++ unit tests continue-on-error: true diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index c63241923f..f8a8232cdd 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -46,7 +46,7 @@ jobs: fetch-depth: 1 - name: Fetch tags - run: git fetch --tags --no-recurse-submodules origin + run: git fetch --tags --force --no-recurse-submodules origin - name: Install pixi run: | @@ -60,7 +60,7 @@ jobs: uses: https://github.com/actions/cache/restore@v4 with: path: /tmp/ccache-kindred-create - key: ccache-release-linux-${{ github.sha }} + key: ccache-release-linux-${{ github.run_id }} restore-keys: | ccache-release-linux- ccache-build-main- @@ -84,7 +84,7 @@ jobs: uses: https://github.com/actions/cache/save@v4 with: path: /tmp/ccache-kindred-create - key: ccache-release-linux-${{ github.sha }} + key: ccache-release-linux-${{ github.run_id }} - name: Build .deb package run: | @@ -113,174 +113,176 @@ jobs: # --------------------------------------------------------------------------- # macOS: DMG (Intel + Apple Silicon) + # TODO: Re-enable when macOS runners are available or cross-compilation is set up # --------------------------------------------------------------------------- - build-macos: - strategy: - fail-fast: false - matrix: - include: - - runner: macos-13 - arch: x86_64 - - runner: macos-14 - arch: arm64 - - runs-on: ${{ matrix.runner }} - - env: - CCACHE_DIR: /tmp/ccache-kindred-create - CCACHE_COMPRESS: "true" - CCACHE_COMPRESSLEVEL: "6" - CCACHE_MAXSIZE: "4G" - CCACHE_SLOPPINESS: "include_file_ctime,include_file_mtime,pch_defines,time_macros" - CCACHE_BASEDIR: ${{ github.workspace }} - BUILD_TAG: ${{ github.ref_name || inputs.tag }} - CFLAGS: "-O3" - CXXFLAGS: "-O3" - - steps: - - name: Checkout repository - uses: https://github.com/actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 1 - - - name: Fetch tags - run: git fetch --tags --no-recurse-submodules origin - - - name: Install pixi - run: | - curl -fsSL https://pixi.sh/install.sh | bash - echo "$HOME/.pixi/bin" >> $GITHUB_PATH - export PATH="$HOME/.pixi/bin:$PATH" - pixi --version - - - name: Restore ccache - id: ccache-restore - uses: https://github.com/actions/cache/restore@v4 - with: - path: /tmp/ccache-kindred-create - key: ccache-release-macos-${{ matrix.arch }}-${{ github.sha }} - restore-keys: | - ccache-release-macos-${{ matrix.arch }}- - - - name: Prepare ccache - run: | - mkdir -p $CCACHE_DIR - pixi run ccache -z - - - name: Build release package (DMG) - working-directory: package/rattler-build - run: | - pixi install - pixi run -e package create_bundle - - - name: Show ccache statistics - run: pixi run ccache -s - - - name: Save ccache - if: always() - uses: https://github.com/actions/cache/save@v4 - with: - path: /tmp/ccache-kindred-create - key: ccache-release-macos-${{ matrix.arch }}-${{ github.sha }} - - - name: List built artifacts - run: | - echo "=== macOS ${{ matrix.arch }} release artifacts ===" - ls -lah package/rattler-build/osx/*.dmg* 2>/dev/null || true - - - name: Upload macOS artifacts - uses: https://github.com/actions/upload-artifact@v3 - with: - name: release-macos-${{ matrix.arch }} - path: | - package/rattler-build/osx/*.dmg - package/rattler-build/osx/*-SHA256.txt - if-no-files-found: error + # build-macos: + # strategy: + # fail-fast: false + # matrix: + # include: + # - runner: macos-13 + # arch: x86_64 + # - runner: macos-14 + # arch: arm64 + # + # runs-on: ${{ matrix.runner }} + # + # env: + # CCACHE_DIR: /tmp/ccache-kindred-create + # CCACHE_COMPRESS: "true" + # CCACHE_COMPRESSLEVEL: "6" + # CCACHE_MAXSIZE: "4G" + # CCACHE_SLOPPINESS: "include_file_ctime,include_file_mtime,pch_defines,time_macros" + # CCACHE_BASEDIR: ${{ github.workspace }} + # BUILD_TAG: ${{ github.ref_name || inputs.tag }} + # CFLAGS: "-O3" + # CXXFLAGS: "-O3" + # + # steps: + # - name: Checkout repository + # uses: https://github.com/actions/checkout@v4 + # with: + # submodules: recursive + # fetch-depth: 1 + # + # - name: Fetch tags + # run: git fetch --tags --force --no-recurse-submodules origin + # + # - name: Install pixi + # run: | + # curl -fsSL https://pixi.sh/install.sh | bash + # echo "$HOME/.pixi/bin" >> $GITHUB_PATH + # export PATH="$HOME/.pixi/bin:$PATH" + # pixi --version + # + # - name: Restore ccache + # id: ccache-restore + # uses: https://github.com/actions/cache/restore@v4 + # with: + # path: /tmp/ccache-kindred-create + # key: ccache-release-macos-${{ matrix.arch }}-${{ github.sha }} + # restore-keys: | + # ccache-release-macos-${{ matrix.arch }}- + # + # - name: Prepare ccache + # run: | + # mkdir -p $CCACHE_DIR + # pixi run ccache -z + # + # - name: Build release package (DMG) + # working-directory: package/rattler-build + # run: | + # pixi install + # pixi run -e package create_bundle + # + # - name: Show ccache statistics + # run: pixi run ccache -s + # + # - name: Save ccache + # if: always() + # uses: https://github.com/actions/cache/save@v4 + # with: + # path: /tmp/ccache-kindred-create + # key: ccache-release-macos-${{ matrix.arch }}-${{ github.sha }} + # + # - name: List built artifacts + # run: | + # echo "=== macOS ${{ matrix.arch }} release artifacts ===" + # ls -lah package/rattler-build/osx/*.dmg* 2>/dev/null || true + # + # - name: Upload macOS artifacts + # uses: https://github.com/actions/upload-artifact@v3 + # with: + # name: release-macos-${{ matrix.arch }} + # path: | + # package/rattler-build/osx/*.dmg + # package/rattler-build/osx/*-SHA256.txt + # if-no-files-found: error # --------------------------------------------------------------------------- # Windows: .exe installer + .7z archive + # TODO: Re-enable when Windows runners are available or cross-compilation is set up # --------------------------------------------------------------------------- - build-windows: - runs-on: windows-latest - - env: - CCACHE_DIR: C:\ccache-kindred-create - CCACHE_COMPRESS: "true" - CCACHE_COMPRESSLEVEL: "6" - CCACHE_MAXSIZE: "4G" - CCACHE_SLOPPINESS: "include_file_ctime,include_file_mtime,pch_defines,time_macros" - CCACHE_BASEDIR: ${{ github.workspace }} - BUILD_TAG: ${{ github.ref_name || inputs.tag }} - CFLAGS: "/O2" - CXXFLAGS: "/O2" - MAKE_INSTALLER: "true" - - steps: - - name: Checkout repository - uses: https://github.com/actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 1 - - - name: Fetch tags - shell: bash - run: git fetch --tags --no-recurse-submodules origin - - - name: Install pixi - shell: bash - run: | - curl -fsSL https://pixi.sh/install.sh | bash - echo "$HOME/.pixi/bin" >> $GITHUB_PATH - export PATH="$HOME/.pixi/bin:$PATH" - pixi --version - - - name: Restore ccache - id: ccache-restore - uses: https://github.com/actions/cache/restore@v4 - with: - path: C:\ccache-kindred-create - key: ccache-release-windows-${{ github.sha }} - restore-keys: | - ccache-release-windows- - - - name: Build release package - shell: bash - working-directory: package/rattler-build - run: | - pixi install - pixi run -e package create_bundle - - - name: Save ccache - if: always() - uses: https://github.com/actions/cache/save@v4 - with: - path: C:\ccache-kindred-create - key: ccache-release-windows-${{ github.sha }} - - - name: List built artifacts - shell: bash - run: | - echo "=== Windows release artifacts ===" - ls -lah package/rattler-build/windows/*.7z* 2>/dev/null || true - ls -lah package/rattler-build/windows/*.exe 2>/dev/null || true - ls -lah package/rattler-build/windows/*-SHA256.txt 2>/dev/null || true - - - name: Upload Windows artifacts - uses: https://github.com/actions/upload-artifact@v3 - with: - name: release-windows - path: | - package/rattler-build/windows/*.7z - package/rattler-build/windows/*.exe - package/rattler-build/windows/*-SHA256.txt - if-no-files-found: error + # build-windows: + # runs-on: windows-latest + # + # env: + # CCACHE_DIR: C:\ccache-kindred-create + # CCACHE_COMPRESS: "true" + # CCACHE_COMPRESSLEVEL: "6" + # CCACHE_MAXSIZE: "4G" + # CCACHE_SLOPPINESS: "include_file_ctime,include_file_mtime,pch_defines,time_macros" + # CCACHE_BASEDIR: ${{ github.workspace }} + # BUILD_TAG: ${{ github.ref_name || inputs.tag }} + # CFLAGS: "/O2" + # CXXFLAGS: "/O2" + # MAKE_INSTALLER: "true" + # + # steps: + # - name: Checkout repository + # uses: https://github.com/actions/checkout@v4 + # with: + # submodules: recursive + # fetch-depth: 1 + # + # - name: Fetch tags + # shell: bash + # run: git fetch --tags --force --no-recurse-submodules origin + # + # - name: Install pixi + # shell: bash + # run: | + # curl -fsSL https://pixi.sh/install.sh | bash + # echo "$HOME/.pixi/bin" >> $GITHUB_PATH + # export PATH="$HOME/.pixi/bin:$PATH" + # pixi --version + # + # - name: Restore ccache + # id: ccache-restore + # uses: https://github.com/actions/cache/restore@v4 + # with: + # path: C:\ccache-kindred-create + # key: ccache-release-windows-${{ github.sha }} + # restore-keys: | + # ccache-release-windows- + # + # - name: Build release package + # shell: bash + # working-directory: package/rattler-build + # run: | + # pixi install + # pixi run -e package create_bundle + # + # - name: Save ccache + # if: always() + # uses: https://github.com/actions/cache/save@v4 + # with: + # path: C:\ccache-kindred-create + # key: ccache-release-windows-${{ github.sha }} + # + # - name: List built artifacts + # shell: bash + # run: | + # echo "=== Windows release artifacts ===" + # ls -lah package/rattler-build/windows/*.7z* 2>/dev/null || true + # ls -lah package/rattler-build/windows/*.exe 2>/dev/null || true + # ls -lah package/rattler-build/windows/*-SHA256.txt 2>/dev/null || true + # + # - name: Upload Windows artifacts + # uses: https://github.com/actions/upload-artifact@v3 + # with: + # name: release-windows + # path: | + # package/rattler-build/windows/*.7z + # package/rattler-build/windows/*.exe + # package/rattler-build/windows/*-SHA256.txt + # if-no-files-found: error # --------------------------------------------------------------------------- # Create Gitea release from all platform artifacts # --------------------------------------------------------------------------- publish-release: - needs: [build-linux, build-macos, build-windows] + needs: [build-linux] # TODO: Add build-macos, build-windows when runners are available runs-on: ubuntu-latest env: @@ -326,10 +328,8 @@ jobs: |----------|------| | Linux (AppImage) | `KindredCreate-*-Linux-x86_64.AppImage` | | Linux (Debian/Ubuntu) | `kindred-create_*.deb` | - | macOS (Intel) | `KindredCreate-*-macOS-x86_64.dmg` | - | macOS (Apple Silicon) | `KindredCreate-*-macOS-arm64.dmg` | - | Windows (Installer) | `KindredCreate-*-Windows-x86_64-installer.exe` | - | Windows (Portable) | `KindredCreate-*-Windows-x86_64.7z` | + + *macOS and Windows builds are not yet available.* SHA256 checksums are provided alongside each artifact. prerelease: ${{ contains(github.ref_name, 'rc') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'alpha') }}