Files
msime-windows/scripts/ci/verify-commit-on-main.sh
Evan Hu d59be91390 refactor(ci): move every release shell step into scripts/ci
release.yml had grown thirteen inline shell and PowerShell blocks, some of them twenty lines, which made the workflow hard to read and impossible to lint or run outside Actions. Each one is now a file under scripts/ci and the workflow only wires them up.

Two things fall out of the move rather than being separate changes. The two signing steps were near-duplicates and are now one sign-binaries.ps1 taking a path list, used for both the packaged binaries and the finished installer. The pinned Inno Setup language file URL and checksum move to the packaging job's env, where they read as configuration instead of being buried mid-script.

The Server job now checks this repository out into automation/ for its two scripts. That checkout has to come after the MSIME-Server one, because checkout cleans its destination and the workspace root would take automation/ with it.

shellcheck is clean on all six shell scripts. The PowerShell is not syntax-checked here for lack of pwsh, but four of the seven are verbatim from steps that already ran green in run 33953797415.
2026-09-05 17:19:51 +09:00

12 lines
352 B
Bash
Executable File

#!/usr/bin/env bash
# Refuse to build anything that is not in main's history. Run from inside the checkout being
# validated.
set -euo pipefail
git fetch --no-tags --depth 50 origin main
if ! git merge-base --is-ancestor HEAD FETCH_HEAD; then
echo "The release commit is not in main's history." >&2
exit 1
fi
echo "HEAD is in main's history."