feat: add build scripts for APK generation in both CMD and PowerShell #5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Repository CI | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Validate repository layout | |
| run: | | |
| test -d web | |
| test -d powershell | |
| test -d windows | |
| test -d android | |
| test -f web/index.html | |
| test -f web/styles.css | |
| test -f web/script.js | |
| test -f web/manifest.json | |
| test -f web/service-worker.js | |
| test -f powershell/native-widget.ps1 | |
| test -f windows/BinaryBloomClock.Windows.csproj | |
| test -f android/app/build.gradle.kts | |
| - name: Validate JSON files | |
| run: | | |
| python -m json.tool web/manifest.json > /dev/null | |
| - name: Validate PowerShell syntax | |
| shell: pwsh | |
| run: | | |
| $errors = @() | |
| Get-ChildItem -Path powershell -Filter *.ps1 | ForEach-Object { | |
| $parseErrors = $null | |
| [void][System.Management.Automation.Language.Parser]::ParseFile($_.FullName, [ref]$null, [ref]$parseErrors) | |
| if ($parseErrors) { | |
| $errors += $parseErrors | |
| } | |
| } | |
| if ($errors.Count -gt 0) { | |
| $errors | ForEach-Object { Write-Host $_ } | |
| throw "PowerShell parse errors found." | |
| } | |
| windows-build: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET SDK | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 9.0.x | |
| - name: Build Windows wrapper | |
| run: dotnet build windows/BinaryBloomClock.Windows.csproj --configuration Release --nologo |