docs: self-service upgrade message + gated cross-version test (on-dem… #235
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Edge | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "**/*.md" | |
| - "**/*.mdx" | |
| - "**/*.txt" | |
| - "**/*.rst" | |
| - "**/*.adoc" | |
| workflow_dispatch: | |
| jobs: | |
| prepare_edge_release: | |
| name: Prepare edge release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v5.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - name: Force-update edge tag | |
| run: | | |
| git tag -f edge "$GITHUB_SHA" | |
| git push origin refs/tags/edge --force | |
| build_release: | |
| name: Build edge ${{ matrix.asset_name }} | |
| needs: prepare_edge_release | |
| runs-on: ${{ matrix.runner }} | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu-latest | |
| asset_name: omnigraph-linux-x86_64 | |
| - runner: ubuntu-24.04-arm | |
| asset_name: omnigraph-linux-arm64 | |
| - runner: macos-14 | |
| asset_name: omnigraph-macos-arm64 | |
| - runner: windows-latest | |
| asset_name: omnigraph-windows-x86_64 | |
| env: | |
| CARGO_TERM_COLOR: always | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v5.0.1 | |
| - name: Install Linux dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y protobuf-compiler libprotobuf-dev | |
| - name: Install macOS dependencies | |
| if: runner.os == 'macOS' | |
| run: brew install protobuf | |
| - name: Install Windows dependencies | |
| if: runner.os == 'Windows' | |
| run: choco install protoc -y | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| - name: Cache Rust build data | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: | | |
| . -> target | |
| - name: Build release binaries | |
| run: cargo build --release --locked -p omnigraph-cli -p omnigraph-server | |
| - name: Package Unix release archive | |
| if: runner.os != 'Windows' | |
| run: | | |
| mkdir -p release | |
| install -m 0755 target/release/omnigraph release/omnigraph | |
| install -m 0755 target/release/omnigraph-server release/omnigraph-server | |
| tar -C release -czf "${{ matrix.asset_name }}.tar.gz" omnigraph omnigraph-server | |
| shasum -a 256 "${{ matrix.asset_name }}.tar.gz" > "${{ matrix.asset_name }}.sha256" | |
| - name: Package Windows release archive | |
| if: runner.os == 'Windows' | |
| run: | | |
| New-Item -ItemType Directory -Force -Path release | Out-Null | |
| Copy-Item target/release/omnigraph.exe release/omnigraph.exe | |
| Copy-Item target/release/omnigraph-server.exe release/omnigraph-server.exe | |
| Compress-Archive -Path release/omnigraph.exe, release/omnigraph-server.exe -DestinationPath "${{ matrix.asset_name }}.zip" -Force | |
| $hash = (Get-FileHash "${{ matrix.asset_name }}.zip" -Algorithm SHA256).Hash.ToLowerInvariant() | |
| "$hash ${{ matrix.asset_name }}.zip" | Out-File -FilePath "${{ matrix.asset_name }}.sha256" -Encoding ascii | |
| New-Item -ItemType Directory -Force -Path verify | Out-Null | |
| Expand-Archive -Path "${{ matrix.asset_name }}.zip" -DestinationPath verify -Force | |
| $items = Get-ChildItem -Path verify -File | |
| if ($items.Count -ne 2 -or !(Test-Path verify/omnigraph.exe) -or !(Test-Path verify/omnigraph-server.exe)) { | |
| throw "Windows release archive is missing expected binaries" | |
| } | |
| - name: Publish edge release assets | |
| uses: softprops/action-gh-release@v2.5.0 | |
| with: | |
| tag_name: edge | |
| name: Edge | |
| prerelease: true | |
| make_latest: false | |
| body: | | |
| Rolling prerelease from `${{ github.sha }}`. | |
| files: | | |
| ${{ matrix.asset_name }}.* | |
| smoke_windows_installer: | |
| name: Smoke Windows installer | |
| needs: build_release | |
| runs-on: windows-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v5.0.1 | |
| - name: Install from edge release | |
| run: ./scripts/install.ps1 -ReleaseChannel edge -InstallDir "$env:RUNNER_TEMP/omnigraph-bin" | |
| - name: Smoke installed binaries | |
| run: | | |
| & "$env:RUNNER_TEMP/omnigraph-bin/omnigraph.exe" version | |
| & "$env:RUNNER_TEMP/omnigraph-bin/omnigraph-server.exe" --help |