name: Prepare release on: workflow_dispatch: inputs: version: description: 'Public version' required: true concurrency: group: ${{ github.workflow }} cancel-in-progress: true env: RUN_SLOW_TESTS: 1 jobs: prepare-release: runs-on: ubuntu-24.04 permissions: contents: write steps: - uses: actions/checkout@v4 with: show-progress: false - name: Check for unreplaced "Since:" in the wiki run: | if grep --recursive 'Since: next release' wiki; then exit 1 fi - name: Install dependencies run: | sudo apt-get update -y sudo apt-get install -y curl gcc clang libudev-dev libgbm-dev libxkbcommon-dev libegl1-mesa-dev libwayland-dev libinput-dev libdbus-1-dev libsystemd-dev libseat-dev libpipewire-0.3-dev libpango1.0-dev libdisplay-info-dev libadwaita-1-dev - uses: dtolnay/rust-toolchain@stable - name: Create vendored dependencies archive run: | mkdir .cargo cargo vendor --locked > .cargo/config.toml tar cJf niri-${{ github.event.inputs.version }}-vendored-dependencies.tar.xz vendor/ - name: Build run: cargo build --all --frozen --release - name: Build tests run: cargo test --no-run --all --frozen --release - name: Test run: cargo test --all --frozen --release -- --nocapture - name: Draft release uses: softprops/action-gh-release@v2 with: draft: true tag_name: v${{ github.event.inputs.version }} files: niri-${{ github.event.inputs.version }}-vendored-dependencies.tar.xz fail_on_unmatched_files: true