# SPDX-License-Identifier: LGPL-2.1-or-later name: Release Build on: push: tags: ['v*', 'weekly-*'] workflow_dispatch: inputs: tag: description: 'Release tag (e.g., v1.0.0)' required: true type: string jobs: build-linux-appimage: runs-on: debian-host env: CCACHE_DIR: /var/cache/ccache/kindred-create CCACHE_COMPRESS: "true" CCACHE_COMPRESSLEVEL: "5" CCACHE_MAXSIZE: "2G" CCACHE_NODIRECT: "true" CCACHE_NOHASHDIR: "true" CCACHE_NOINODECACHE: "true" CCACHE_SLOPPINESS: "include_file_ctime,include_file_mtime,pch_defines,time_macros" CCACHE_COMPILERCHECK: "%compiler% -dumpfullversion -dumpversion" BUILD_TAG: ${{ github.ref_name || inputs.tag }} MAKE_INSTALLER: "true" steps: - name: Checkout repository uses: https://github.com/actions/checkout@v4 with: submodules: recursive fetch-depth: 0 fetch-tags: true - name: Install pixi if needed shell: bash run: | if ! command -v pixi &> /dev/null; then curl -fsSL https://pixi.sh/install.sh | bash echo "$HOME/.pixi/bin" >> $GITHUB_PATH export PATH="$HOME/.pixi/bin:$PATH" fi pixi --version - name: Prepare ccache shell: bash run: | sudo mkdir -p $CCACHE_DIR sudo chown $(whoami):$(whoami) $CCACHE_DIR pixi run ccache -z - name: Write version info run: python3 package/scripts/write_version_info.py ../freecad_version.txt - name: Build release package (AppImage) working-directory: package/rattler-build run: | pixi install pixi run -e package create_bundle - name: Show ccache statistics run: pixi run ccache -s - name: Upload AppImage artifact uses: https://github.com/actions/upload-artifact@v4 with: name: kindred-create-linux-x86_64-${{ env.BUILD_TAG }} path: | package/rattler-build/linux/*.AppImage package/rattler-build/linux/*.AppImage.zsync package/rattler-build/linux/*-SHA256.txt if-no-files-found: warn