Some checks failed
PR Review Automation / review (pull_request) Successful in 3m57s
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
- Add release-beta.yml: triggers on push to beta, creates
v{CARGO}-beta.N pre-release tags with prerelease: true, builds all
four platforms; tag counter resets when Cargo.toml version bumps
- Add beta to test.yml push triggers so CI runs on direct pushes to
beta (pull_request already covers PRs targeting beta)
- Implement update_channel in AppSettings (state.rs) with serde
default "stable"; wire get/set_update_channel commands to AppState
instead of returning hardcoded stubs
- Implement channel-aware check_app_updates: queries /releases?limit=20
and picks first non-draft release matching the active channel
(stable = !prerelease, beta = prerelease), skipping drafts
- Document two-channel strategy in docs/wiki/CICD-Pipeline.md
Manual steps still required in Gitea UI:
1. Create beta branch from master
2. Apply same branch protection rules as master to beta
3. Set repo default PR target branch to beta
200 lines
7.1 KiB
YAML
200 lines
7.1 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- beta
|
|
pull_request:
|
|
|
|
jobs:
|
|
rust-fmt-check:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: rustlang/rust:nightly
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
set -eux
|
|
git init
|
|
git remote add origin https://gogs.tftsr.com/sarman/tftsr-devops_investigation.git
|
|
if [ -n "${GITHUB_SHA:-}" ] && git fetch --depth=1 origin "$GITHUB_SHA"; then
|
|
echo "Fetched commit SHA: $GITHUB_SHA"
|
|
elif [ -n "${GITHUB_REF_NAME:-}" ] && git fetch --depth=1 origin "$GITHUB_REF_NAME"; then
|
|
echo "Fetched ref name: $GITHUB_REF_NAME"
|
|
elif [ -n "${GITHUB_REF:-}" ]; then
|
|
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
git fetch --depth=1 origin "$REF_NAME"
|
|
echo "Fetched ref from GITHUB_REF: $REF_NAME"
|
|
else
|
|
git fetch --depth=1 origin master
|
|
echo "Fetched fallback ref: master"
|
|
fi
|
|
git checkout FETCH_HEAD
|
|
- name: Install Node.js
|
|
run: |
|
|
apt-get update && apt-get install -y curl
|
|
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
|
|
apt-get install -y nodejs
|
|
- name: Install system dependencies
|
|
run: |
|
|
apt-get update && apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libssl-dev \
|
|
libgtk-3-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libdbus-1-dev \
|
|
pkg-config
|
|
- name: Install Rust components
|
|
run: rustup component add rustfmt
|
|
- name: Install dependencies
|
|
run: npm install --legacy-peer-deps
|
|
- name: Update version from Git
|
|
run: node scripts/update-version.mjs
|
|
- run: cargo generate-lockfile --manifest-path src-tauri/Cargo.toml
|
|
- run: cargo fmt --manifest-path src-tauri/Cargo.toml --check
|
|
|
|
rust-clippy:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: rustlang/rust:nightly
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
set -eux
|
|
git init
|
|
git remote add origin https://gogs.tftsr.com/sarman/tftsr-devops_investigation.git
|
|
if [ -n "${GITHUB_SHA:-}" ] && git fetch --depth=1 origin "$GITHUB_SHA"; then
|
|
echo "Fetched commit SHA: $GITHUB_SHA"
|
|
elif [ -n "${GITHUB_REF_NAME:-}" ] && git fetch --depth=1 origin "$GITHUB_REF_NAME"; then
|
|
echo "Fetched ref name: $GITHUB_REF_NAME"
|
|
elif [ -n "${GITHUB_REF:-}" ]; then
|
|
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
git fetch --depth=1 origin "$REF_NAME"
|
|
echo "Fetched ref from GITHUB_REF: $REF_NAME"
|
|
else
|
|
git fetch --depth=1 origin master
|
|
echo "Fetched fallback ref: master"
|
|
fi
|
|
git checkout FETCH_HEAD
|
|
- name: Install system dependencies
|
|
run: |
|
|
apt-get update && apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libssl-dev \
|
|
libgtk-3-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libdbus-1-dev \
|
|
pkg-config
|
|
- name: Install clippy
|
|
run: rustup component add clippy
|
|
- run: cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
|
|
|
|
rust-tests:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: rustlang/rust:nightly
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
set -eux
|
|
git init
|
|
git remote add origin https://gogs.tftsr.com/sarman/tftsr-devops_investigation.git
|
|
if [ -n "${GITHUB_SHA:-}" ] && git fetch --depth=1 origin "$GITHUB_SHA"; then
|
|
echo "Fetched commit SHA: $GITHUB_SHA"
|
|
elif [ -n "${GITHUB_REF_NAME:-}" ] && git fetch --depth=1 origin "$GITHUB_REF_NAME"; then
|
|
echo "Fetched ref name: $GITHUB_REF_NAME"
|
|
elif [ -n "${GITHUB_REF:-}" ]; then
|
|
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
git fetch --depth=1 origin "$REF_NAME"
|
|
echo "Fetched ref from GITHUB_REF: $REF_NAME"
|
|
else
|
|
git fetch --depth=1 origin master
|
|
echo "Fetched fallback ref: master"
|
|
fi
|
|
git checkout FETCH_HEAD
|
|
- name: Install system dependencies
|
|
run: |
|
|
apt-get update && apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libssl-dev \
|
|
libgtk-3-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libdbus-1-dev \
|
|
pkg-config
|
|
- run: cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1
|
|
|
|
- name: Run shell module tests
|
|
run: 'cargo test --manifest-path src-tauri/Cargo.toml "shell::" -- --test-threads=1'
|
|
|
|
frontend-typecheck:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: node:22-alpine
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
set -eux
|
|
apk add --no-cache git
|
|
git init
|
|
git remote add origin https://gogs.tftsr.com/sarman/tftsr-devops_investigation.git
|
|
if [ -n "${GITHUB_SHA:-}" ] && git fetch --depth=1 origin "$GITHUB_SHA"; then
|
|
echo "Fetched commit SHA: $GITHUB_SHA"
|
|
elif [ -n "${GITHUB_REF_NAME:-}" ] && git fetch --depth=1 origin "$GITHUB_REF_NAME"; then
|
|
echo "Fetched ref name: $GITHUB_REF_NAME"
|
|
elif [ -n "${GITHUB_REF:-}" ]; then
|
|
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
git fetch --depth=1 origin "$REF_NAME"
|
|
echo "Fetched ref from GITHUB_REF: $REF_NAME"
|
|
else
|
|
git fetch --depth=1 origin master
|
|
echo "Fetched fallback ref: master"
|
|
fi
|
|
git checkout FETCH_HEAD
|
|
- name: Cache npm
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-npm-
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npx tsc --noEmit
|
|
|
|
frontend-tests:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: node:22-alpine
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
set -eux
|
|
apk add --no-cache git
|
|
git init
|
|
git remote add origin https://gogs.tftsr.com/sarman/tftsr-devops_investigation.git
|
|
if [ -n "${GITHUB_SHA:-}" ] && git fetch --depth=1 origin "$GITHUB_SHA"; then
|
|
echo "Fetched commit SHA: $GITHUB_SHA"
|
|
elif [ -n "${GITHUB_REF_NAME:-}" ] && git fetch --depth=1 origin "$GITHUB_REF_NAME"; then
|
|
echo "Fetched ref name: $GITHUB_REF_NAME"
|
|
elif [ -n "${GITHUB_REF:-}" ]; then
|
|
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
git fetch --depth=1 origin "$REF_NAME"
|
|
echo "Fetched ref from GITHUB_REF: $REF_NAME"
|
|
else
|
|
git fetch --depth=1 origin master
|
|
echo "Fetched fallback ref: master"
|
|
fi
|
|
git checkout FETCH_HEAD
|
|
- name: Cache npm
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-npm-
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npm run test:run
|