Delete .github/workflows/ci.yml
This commit is contained in:
parent
65899ba66f
commit
7e94b0e690
|
|
@ -1,217 +0,0 @@
|
||||||
name: CI
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main, master]
|
|
||||||
pull_request:
|
|
||||||
branches: [main, master]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-test:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-latest, windows-latest]
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Rust
|
|
||||||
uses: dtolnay/rust-toolchain@stable
|
|
||||||
|
|
||||||
- name: Cache cargo
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
vestibule/helper/target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('vestibule/helper/Cargo.lock') }}
|
|
||||||
restore-keys: ${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Build usher
|
|
||||||
working-directory: vestibule/helper
|
|
||||||
run: cargo build --release
|
|
||||||
|
|
||||||
- name: Smoke test (Linux)
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule
|
|
||||||
run: python3 scripts/test-native-messaging.py
|
|
||||||
|
|
||||||
- name: Smoke test (Windows)
|
|
||||||
if: runner.os == 'Windows'
|
|
||||||
working-directory: vestibule
|
|
||||||
run: python scripts\test-native-messaging.py
|
|
||||||
|
|
||||||
- name: Validate JSON
|
|
||||||
working-directory: vestibule
|
|
||||||
run: |
|
|
||||||
python3 -c "import json; json.load(open('extension/manifest.json'))"
|
|
||||||
python3 -c "import json; json.load(open('config/policies.json'))"
|
|
||||||
python3 -c "import json; json.load(open('config/com.vestibule.usher.linux.json'))"
|
|
||||||
python3 -c "import json; json.load(open('config/com.vestibule.usher.windows.json'))"
|
|
||||||
python3 -c "import json; json.load(open('packaging/net.dcos.Vestibule.json'))"
|
|
||||||
|
|
||||||
- name: Validate XML + icon assets
|
|
||||||
working-directory: vestibule
|
|
||||||
run: |
|
|
||||||
python3 -c "import xml.dom.minidom; xml.dom.minidom.parse('packaging/net.dcos.Vestibule.metainfo.xml')"
|
|
||||||
python3 - <<'EOF'
|
|
||||||
import os
|
|
||||||
for f in ["packaging/icons/vestibule.ico", "packaging/icons/vestibule.svg"]:
|
|
||||||
assert os.path.exists(f) and os.path.getsize(f) > 0, f
|
|
||||||
print("icon assets ok")
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- name: Check JS syntax
|
|
||||||
working-directory: vestibule/extension
|
|
||||||
run: |
|
|
||||||
for f in *.js; do node --check "$f" || exit 1; done
|
|
||||||
|
|
||||||
- name: URL policy unit tests
|
|
||||||
working-directory: vestibule
|
|
||||||
run: node scripts/test-url-policy.js
|
|
||||||
|
|
||||||
- name: Check POSIX sh syntax
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule/scripts
|
|
||||||
run: |
|
|
||||||
for f in *.sh vestibule-kiosk-launch; do sh -n "$f" || exit 1; done
|
|
||||||
sh -n ../packaging/vestibule-flatpak-cli
|
|
||||||
sh -n ../packaging/build-flatpak.sh
|
|
||||||
|
|
||||||
- name: Check PowerShell syntax
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule
|
|
||||||
shell: pwsh
|
|
||||||
run: |
|
|
||||||
$files = Get-ChildItem scripts/*.ps1, packaging/*.ps1
|
|
||||||
foreach ($f in $files) {
|
|
||||||
$errs = $null
|
|
||||||
[void][System.Management.Automation.Language.Parser]::ParseFile($f.FullName, [ref]$null, [ref]$errs)
|
|
||||||
if ($errs) {
|
|
||||||
$errs | ForEach-Object { Write-Error "$($f.Name): $($_.Message)" }
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Write-Host "PowerShell syntax OK ($($files.Count) files)"
|
|
||||||
|
|
||||||
- name: Provision/deprovision integration test (rootless sandbox)
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule
|
|
||||||
run: sh scripts/test-provision-linux.sh
|
|
||||||
|
|
||||||
- name: provision --check fails with documented exit code (no prereqs on runner)
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule
|
|
||||||
run: |
|
|
||||||
code=0
|
|
||||||
sh scripts/provision-kiosk.sh --check || code=$?
|
|
||||||
# The runner has systemd but no cage/LibreWolf -> documented exit 3.
|
|
||||||
if [ "$code" -ne 3 ]; then
|
|
||||||
echo "expected exit 3 (missing prerequisites), got $code"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "check mode returned documented exit code 3"
|
|
||||||
|
|
||||||
- name: provision-kiosk.ps1 -Check fails fast off-Windows (exit 2)
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
working-directory: vestibule
|
|
||||||
shell: pwsh
|
|
||||||
run: |
|
|
||||||
$code = 0
|
|
||||||
try { & pwsh -NoProfile -File scripts/provision-kiosk.ps1 -Check } catch { $code = 1 }
|
|
||||||
if ($LASTEXITCODE -ne 2) {
|
|
||||||
Write-Error "expected exit 2 (unsupported platform), got $LASTEXITCODE"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
Write-Host "Windows provisioner correctly refuses to run on Linux (exit 2)"
|
|
||||||
|
|
||||||
package-windows:
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Rust
|
|
||||||
uses: dtolnay/rust-toolchain@stable
|
|
||||||
|
|
||||||
- name: Cache cargo
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
vestibule/helper/target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('vestibule/helper/Cargo.lock') }}
|
|
||||||
restore-keys: ${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Install Inno Setup
|
|
||||||
shell: powershell
|
|
||||||
run: choco install innosetup -y --no-progress
|
|
||||||
|
|
||||||
- name: Build installer + XPI
|
|
||||||
working-directory: vestibule
|
|
||||||
shell: powershell
|
|
||||||
run: |
|
|
||||||
powershell -NoProfile -ExecutionPolicy Bypass -File packaging\build-installer.ps1
|
|
||||||
# Standalone XPI artifact for policy-based manual deploys.
|
|
||||||
Compress-Archive -Path extension\* -DestinationPath vestibule-1.2.2.xpi -Force
|
|
||||||
|
|
||||||
- name: Upload installer artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: vestibule-setup-windows
|
|
||||||
path: |
|
|
||||||
vestibule/packaging/Output/Vestibule-Setup-1.2.2.exe
|
|
||||||
vestibule/vestibule-1.2.2.xpi
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
package-linux:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Rust
|
|
||||||
uses: dtolnay/rust-toolchain@stable
|
|
||||||
|
|
||||||
- name: Cache cargo
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
vestibule/helper/target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('vestibule/helper/Cargo.lock') }}
|
|
||||||
restore-keys: ${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Build usher (Linux binary)
|
|
||||||
working-directory: vestibule/helper
|
|
||||||
run: cargo build --release
|
|
||||||
|
|
||||||
- name: Upload usher binary
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: vestibule-usher-linux
|
|
||||||
path: vestibule/helper/target/release/usher
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Build Flatpak bundle
|
|
||||||
working-directory: vestibule
|
|
||||||
run: |
|
|
||||||
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
||||||
rm -rf packaging/repo packaging/builddir
|
|
||||||
flatpak-builder --user --install-deps-from=flathub --force-clean \
|
|
||||||
--repo=packaging/repo packaging/builddir packaging/net.dcos.Vestibule.json
|
|
||||||
flatpak build-bundle packaging/repo packaging/Vestibule-1.2.2.flatpak \
|
|
||||||
net.dcos.Vestibule 1.2.2
|
|
||||||
|
|
||||||
- name: Upload Flatpak artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: vestibule-flatpak-linux
|
|
||||||
path: vestibule/packaging/Vestibule-1.2.2.flatpak
|
|
||||||
if-no-files-found: error
|
|
||||||
Loading…
Reference in New Issue