chore: release 2024.06.06 (#4984) #30
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: | |
# TODO(kt3k): Enable this after CLI v1.43.0 released | |
# - v1.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@v1 | |
with: | |
deno-version: ${{ matrix.deno }} | |
- name: Run tests | |
run: deno task test | |
- name: Run tests (simulate Deno 2) | |
if: matrix.deno == 'canary' | |
run: deno task test | |
env: | |
DENO_FUTURE: 1 | |
- 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 | |
shell: bash | |
run: deno task test:browser | |
- 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 }} | |
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@v1 | |
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@v1 | |
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@v1 | |
with: | |
deno-version: canary | |
- name: Publish (dry run) | |
run: deno publish --dry-run |