name: Modrinth App build on: push: branches: - main tags: - 'v*' paths: - .github/workflows/theseus-build.yml - 'apps/app/**' - 'apps/app-frontend/**' - 'packages/app-lib/**' - 'packages/app-macros/**' - 'packages/assets/**' - 'packages/ui/**' - 'packages/utils/**' workflow_dispatch: inputs: sign-windows-binaries: description: Sign Windows binaries type: boolean default: false required: false environment: description: Environment type: choice options: - prod - staging - prod-with-staging-archon default: prod required: false app-version-override: description: Temporary app version override for updater testing type: string required: false concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/prod' }} jobs: build: name: Build env: VITE_STRIPE_PUBLISHABLE_KEY: pk_live_51JbFxJJygY5LJFfKLVVldb10HlLt24p421OWRsTOWc5sXYFOnFUXWieSc6HD3PHo25ktx8db1WcHr36XGFvZFVUz00V9ixrCs5 RUSTC_WRAPPER: 'sccache' strategy: fail-fast: false matrix: platform: [ namespace-profile-medium-amd64-macos, namespace-profile-medium-amd64-windows, namespace-profile-medium-amd64, ] include: - platform: namespace-profile-medium-amd64-macos artifact-target-name: universal-apple-darwin - platform: namespace-profile-medium-amd64-windows artifact-target-name: x86_64-pc-windows-msvc - platform: namespace-profile-medium-amd64 artifact-target-name: x86_64-unknown-linux-gnu runs-on: ${{ matrix.platform }} steps: - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 - name: Setup Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0 with: rustflags: '' target: ${{ contains(matrix.platform, 'macos') && 'x86_64-apple-darwin' || '' }} - name: Setup mold if: contains(matrix.platform, 'ubuntu') uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 / Mold 2.41.0 - name: Setup sccache uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 - name: Setup Node uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version-file: .nvmrc - name: Enable Corepack run: corepack enable - name: Set up caches if: contains(matrix.platform, 'ubuntu') || contains(matrix.platform, 'macos') uses: namespacelabs/nscloud-cache-action@c5f8dab7560444c4bf8dbc64f1b203431873c547 # v1.6.1 with: cache: | rust pnpm - name: Configure sccache if: contains(matrix.platform, 'ubuntu') || contains(matrix.platform, 'macos') run: nsc cache sccache setup --cache_name default >> "$GITHUB_ENV" - name: Generate tauri-dev.conf.json shell: bash run: | GIT_HASH=$(git rev-parse --short HEAD) cat > apps/app/tauri-dev.conf.json <