48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
schedule:
|
|
- cron: '23 4 * * 1'
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
- name: Bash syntax
|
|
shell: bash
|
|
run: git ls-files -z '*.sh' | xargs -0 -r -n1 bash -n
|
|
- name: PowerShell syntax
|
|
shell: pwsh
|
|
run: |
|
|
$ErrorActionPreference = 'Stop'
|
|
$failed = $false
|
|
foreach ($file in (git ls-files '*.ps1')) {
|
|
$tokens = $null
|
|
$parseErrors = $null
|
|
[System.Management.Automation.Language.Parser]::ParseFile((Join-Path $PWD $file), [ref]$tokens, [ref]$parseErrors) | Out-Null
|
|
if ($parseErrors.Count) {
|
|
$parseErrors | ForEach-Object { Write-Host "${file}: $_" }
|
|
$failed = $true
|
|
}
|
|
}
|
|
if ($failed) { exit 1 }
|
|
- name: Build
|
|
shell: bash
|
|
run: bash scripts/build.sh --summary
|
|
- name: Bash install dry run
|
|
shell: bash
|
|
run: bash scripts/install.sh --summary --dry-run --client both --shell bash
|
|
- name: Bash update dry run
|
|
shell: bash
|
|
run: bash scripts/update.sh --summary --dry-run --client both --shell bash
|
|
- name: PowerShell install dry run
|
|
shell: pwsh
|
|
run: ./scripts/install.ps1 -Summary -DryRun -Client Both -Shell PowerShell
|
|
- name: PowerShell update dry run
|
|
shell: pwsh
|
|
run: ./scripts/update.ps1 -Summary -DryRun -Client Both -Shell PowerShell
|