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