BREAKING(ini): parse understands booleans, undefined, null and number… #15874
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: ci | |
permissions: | |
contents: write | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
deno: | |
- v1.x | |
- v2.x | |
- canary | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macOS-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v2 | |
with: | |
deno-version: ${{ matrix.deno }} | |
- name: Run tests | |
run: deno task test | |
- name: Run timezone-dependent tests | |
run: | | |
TZ=Australia/Sydney deno test datetime | |
TZ=Europe/London deno test datetime | |
TZ=America/Toronto deno test datetime | |
if: matrix.os == 'ubuntu-latest' | |
- name: Type check browser compatible modules | |
run: deno task test:browser | |
if: matrix.deno == 'v2.x' && matrix.os == 'ubuntu-latest' | |
- name: Generate lcov | |
run: deno task cov:gen | |
- name: Upload coverage | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
name: ${{ matrix.os }}-${{ matrix.deno }} | |
test-node: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- latest | |
os: | |
- ubuntu-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- run: npm install | |
working-directory: _tools/node_test_runner | |
- name: Run tests | |
run: deno task test:node | |
lint: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Set up Deno | |
uses: denoland/setup-deno@v2 | |
with: | |
deno-version: canary | |
- name: Format | |
run: deno fmt --check | |
- name: Lint | |
run: deno task lint | |
- name: Spell-check | |
uses: crate-ci/typos@master | |
if: matrix.os == 'ubuntu-latest' | |
with: | |
config: ./.github/typos.toml | |
wasm: | |
name: wasm | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
module: [crypto/_wasm] | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
with: | |
# required to check for changes | |
fetch-depth: 2 | |
persist-credentials: false | |
- name: Check for changes | |
id: source | |
run: |- | |
set -o errexit | |
shopt -s inherit_errexit | |
declare modifications="$(git diff --name-only HEAD~ -- ${{ matrix.module }})" | |
declare modified="$([[ "$modifications" ]] && echo true || echo false)" | |
echo "modified=$modified" >> $GITHUB_OUTPUT | |
echo "${{ matrix.module }} Wasm source modified in this commit? $modified" | |
echo "$modifications" | |
- name: Set up Deno | |
uses: denoland/setup-deno@v2 | |
if: success() && steps.source.outputs.modified == 'true' | |
- name: Set up Rust | |
uses: hecrj/setup-rust-action@v2 | |
if: success() && steps.source.outputs.modified == 'true' | |
with: | |
# This must match the version in _wasm/rust-toolchain.toml of the module folder | |
rust-version: 1.77.2 | |
targets: wasm32-unknown-unknown | |
components: rustfmt | |
- name: Rebuild Wasm and verify it hasn't changed | |
if: success() && steps.source.outputs.modified == 'true' | |
run: deno task --cwd ${{ matrix.module }} --config deno.json wasmbuild --check | |
publish-dry-run: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v2 | |
with: | |
deno-version: canary | |
- name: Publish (dry run) | |
run: deno publish --dry-run |