adding logger + simplifying TV emulation #83
This file contains 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: cdp | |
env: | |
VERCEL_ORG_ID: ${{secrets.VERCEL_ORG_ID}} | |
VERCEL_PROJECT_ID: ${{secrets.VERCEL_PROJECT_ID}} | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
types: [opened, synchronize, reopened] | |
workflow_dispatch: | |
branches: [master] | |
jobs: | |
createbuildvars: | |
name: Create build variables | |
runs-on: ubuntu-latest | |
outputs: | |
buildversion: ${{steps.createbuildversion.outputs.buildversion}} | |
buildcommit: ${{steps.createbuildcommit.outputs.buildcommit}} | |
steps: | |
- id: createbuildversion | |
run: echo "buildversion=$(date +'%y.%m%d').${{github.run_number}}" >> "$GITHUB_OUTPUT" | |
- id: createbuildcommit | |
run: echo "buildcommit=${{github.sha}}" >> "$GITHUB_OUTPUT" | |
build-test-rust: | |
name: Build & test rust | |
needs: createbuildvars | |
strategy: | |
matrix: | |
os: | |
- windows-latest | |
- ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install nightly toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
- name: Run cargo build | |
continue-on-error: false | |
run: | | |
cargo build --release --examples | |
- name: Run cargo test | |
if: always() | |
continue-on-error: true | |
run: | | |
cargo test --release --all-features --all-targets --no-fail-fast -- -Z unstable-options --format junit --report-time --include-ignored --shuffle | tee results.raw | |
shell: pwsh | |
- name: Split test results | |
if: always() | |
continue-on-error: true | |
run: | | |
Remove-Item -Recurse -Force -Path ./test-results -ErrorAction SilentlyContinue | |
New-Item -Force -ItemType Directory -Path ./test-results | |
$n = 0 | |
Get-Content ./results.raw | % { $_ | Out-File -FilePath "./test-results/testsuite.$n.xml" -Encoding utf8 -Force; $n++ } | |
shell: pwsh | |
- name: Publish test results | |
if: always() | |
uses: dorny/test-reporter@v1 | |
with: | |
name: Test results | |
path: test-results/**/*.xml | |
reporter: java-junit | |
fail-on-error: 'true' | |
fail-on-empty: 'true' | |
list-tests: 'failed' | |
lint-rust: | |
name: Lint rust | |
needs: createbuildvars | |
strategy: | |
matrix: | |
os: | |
- windows-latest | |
- ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- name: Run cargo fmt | |
continue-on-error: false | |
run: | | |
cargo fmt --all -- --check | |
- name: Run cargo clippy | |
continue-on-error: false | |
run: | | |
cargo clippy --all-targets --all-features -- -D warnings | |
build-lint-test-web: | |
name: Build, lint, test, web | |
needs: createbuildvars | |
strategy: | |
matrix: | |
os: | |
- windows-latest | |
- ubuntu-latest | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: pnpm/action-setup@v4 | |
name: Install pnpm | |
with: | |
version: 9 | |
run_install: false | |
- name: Install Rust tools | |
continue-on-error: false | |
run: | | |
cd web | |
cargo install wasm-pack rsw | |
- name: Install pnpm packages | |
run: | | |
cd web | |
pnpm install --frozen-lockfile --strict-peer-dependencies | |
- name: rsw build | |
run: | | |
cd web | |
pnpm build | |
- name: Check code format | |
continue-on-error: true # TODO: Remove this once we figure out the failures | |
run: | | |
cd web | |
pnpm format | |
- name: Lint code | |
run: | | |
cd web | |
pnpm lint | |
- name: Test | |
run: | | |
cd web | |
pnpm test | |
deploy-web: | |
name: Deploy web | |
needs: | |
- createbuildvars | |
- build-lint-test-web | |
strategy: | |
matrix: | |
os: | |
- windows-latest | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: pnpm/action-setup@v4 | |
name: Install pnpm | |
with: | |
version: 9 | |
run_install: false | |
- name: Install Vercel CLI | |
run: npm install --global vercel@latest | |
- name: Install Rust tools | |
continue-on-error: false | |
run: | | |
cd web | |
cargo install wasm-pack rsw | |
- name: Install pnpm packages | |
run: | | |
cd web | |
pnpm install --frozen-lockfile --strict-peer-dependencies | |
- name: Build & deploy | |
run: | | |
cd web | |
cmd /c set VITE_ | |
vercel pull --yes --environment=production --token=${{secrets.VERCEL_TOKEN}} | |
vercel build --prod --token=${{secrets.VERCEL_TOKEN}} | |
vercel deploy --prebuilt --prod --token=${{secrets.VERCEL_TOKEN}} | |
env: | |
VITE_APP_VERSION: ${{needs.createbuildvars.outputs.buildversion}} | |
VITE_APP_COMMIT_ID: ${{needs.createbuildvars.outputs.buildcommit}} | |
VITE_APP_AI_INSTRUMENTATION_KEY: ${{secrets.AZURE_CREDENTIALS_KSAPPLICATIONS_AI_KEY}} | |
finish: | |
name: Finish | |
needs: [build-test-rust, lint-rust, deploy-web] | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Done..." |