name: CI Cortex CPP Stable Build on: push: tags: ["v[0-9]+.[0-9]+.[0-9]+"] jobs: # Job create Update app version based on latest release tag with build number and save to output get-update-version: uses: ./.github/workflows/template-get-update-version.yml get-llamacpp-latest-version: uses: ./.github/workflows/template-cortex-llamacpp-latest-version.yml create-draft-release: runs-on: ubuntu-latest if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} version: ${{ steps.get_version.outputs.version }} permissions: contents: write steps: - name: Extract tag name without v prefix id: get_version run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV && echo "::set-output name=version::${GITHUB_REF#refs/tags/v}" env: GITHUB_REF: ${{ github.ref }} - name: Create Draft Release id: create_release uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.ref_name }} token: ${{ secrets.GITHUB_TOKEN }} name: "${{ env.VERSION }}" draft: true prerelease: false generate_release_notes: true build-macos: uses: ./.github/workflows/template-build-macos.yml needs: [get-update-version, create-draft-release, get-llamacpp-latest-version] secrets: inherit with: ref: ${{ github.ref }} public_provider: github new_version: ${{ needs.get-update-version.outputs.new_version }} cmake-flags: "-DCORTEX_VARIANT=prod -DCORTEX_CPP_VERSION='v${{ needs.get-update-version.outputs.new_version }}' -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake" channel: stable upload_url: ${{ needs.create-draft-release.outputs.upload_url }} llamacpp-version: ${{ needs.get-llamacpp-latest-version.outputs.llamacpp_latest_version }} build-windows-x64: uses: ./.github/workflows/template-build-windows-x64.yml secrets: inherit needs: [get-update-version, create-draft-release, get-llamacpp-latest-version] with: ref: ${{ github.ref }} public_provider: github new_version: ${{ needs.get-update-version.outputs.new_version }} runs-on: windows-cuda-11-7 cmake-flags: "-DCORTEX_VARIANT=prod -DCORTEX_CPP_VERSION='v${{ needs.get-update-version.outputs.new_version }}' -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=C:/w/cortex.cpp/cortex.cpp/engine/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" build-deps-cmake-flags: "-DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' channel: stable upload_url: ${{ needs.create-draft-release.outputs.upload_url }} llamacpp-version: ${{ needs.get-llamacpp-latest-version.outputs.llamacpp_latest_version }} build-linux-x64: uses: ./.github/workflows/template-build-linux.yml secrets: inherit needs: [get-update-version, create-draft-release, get-llamacpp-latest-version] with: ref: ${{ github.ref }} public_provider: github new_version: ${{ needs.get-update-version.outputs.new_version }} runs-on: ubuntu-20-04 cmake-flags: "-DCORTEX_VARIANT=prod -DCORTEX_CPP_VERSION='v${{ needs.get-update-version.outputs.new_version }}' -DCMAKE_TOOLCHAIN_FILE=/home/runner/actions-runner/_work/cortex.cpp/cortex.cpp/engine/vcpkg/scripts/buildsystems/vcpkg.cmake" channel: stable upload_url: ${{ needs.create-draft-release.outputs.upload_url }} llamacpp-version: ${{ needs.get-llamacpp-latest-version.outputs.llamacpp_latest_version }} arch: amd64 build-linux-arm64: uses: ./.github/workflows/template-build-linux.yml secrets: inherit needs: [get-update-version, create-draft-release, get-llamacpp-latest-version] with: ref: ${{ github.ref }} public_provider: github new_version: ${{ needs.get-update-version.outputs.new_version }} runs-on: ubuntu-2004-arm64 cmake-flags: "-DCORTEX_VARIANT=prod -DCORTEX_CPP_VERSION='v${{ needs.get-update-version.outputs.new_version }}' -DCMAKE_TOOLCHAIN_FILE=/home/runner/actions-runner/_work/cortex.cpp/cortex.cpp/engine/vcpkg/scripts/buildsystems/vcpkg.cmake" channel: stable upload_url: ${{ needs.create-draft-release.outputs.upload_url }} llamacpp-version: ${{ needs.get-llamacpp-latest-version.outputs.llamacpp_latest_version }} arch: arm64 build-docker-x64: uses: ./.github/workflows/template-build-docker-x64.yml secrets: inherit needs: [get-update-version, get-llamacpp-latest-version] with: ref: ${{ github.ref }} new_version: ${{ needs.get-update-version.outputs.new_version }} runs-on: ubuntu-latest cmake-extra-flags: "-DCORTEX_VARIANT=prod" tags: "menloltd/cortex:latest,menloltd/cortex:${{ needs.get-update-version.outputs.new_version }}"