name: test on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest - windows-latest - macos-latest deno: - "1.x" - "2.x" - "1.33.1" - "canary" - "~1.32" - "b290fd01f3f5d32f9d010fc719ced0240759c049" - "rc" - "lts" steps: - uses: actions/checkout@v3 - name: Setup Deno uses: ./ with: deno-version: ${{ matrix.deno }} - name: Test Deno run: deno run https://deno.land/std@0.198.0/examples/welcome.ts - name: Test `deno install -g` (2.0) if: matrix.deno == 'canary' || matrix.deno == 'latest' run: | deno install -g --allow-net --no-config -n deno_curl https://deno.land/std@0.198.0/examples/curl.ts deno_curl https://deno.land/std@0.198.0/examples/curl.ts - name: Test `deno install (1.0) if: matrix.deno == '1.x' || matrix.deno == '1.33.1' || matrix.deno == '~1.32' || matrix.deno == 'b290fd01f3f5d32f9d010fc719ced0240759c049' run: | deno install --allow-net --no-config -n deno_curl https://deno.land/std@0.198.0/examples/curl.ts deno_curl https://deno.land/std@0.198.0/examples/curl.ts test-version-file: runs-on: ubuntu-latest strategy: matrix: deno-version-file: [.dvmrc, .tool-versions] steps: - uses: actions/checkout@v3 - name: Setup Deno uses: ./ with: deno-version-file: ${{ matrix.deno-version-file }} - name: Check version run: deno -V | grep -q "deno 1\.43\.1" test-binary-name: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v3 - name: Setup Deno uses: ./ with: deno-binary-name: deno_foo - name: Check binary exists run: deno_foo -V test-setup-cache: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 - name: Setup Deno uses: ./ with: cache: true - name: Download dependencies for cache run: deno install --global --no-config npm:cowsay@1.6.0 test-cache: needs: test-setup-cache runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 - name: Setup Deno uses: ./ with: cache: true - name: Run with cached dependencies run: deno run --cached-only --no-config -RE npm:cowsay@1.6.0 "It works!" lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Deno uses: ./ with: deno-version: "rc" - name: Lint run: deno lint - name: Format run: deno fmt --check - name: Check types run: deno check src/main.ts build-diff: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Deno uses: ./ with: deno-version: "rc" - name: Build code run: deno run -A scripts/build.ts - name: Assert no git changes (run `deno task build` if this fails) run: git diff --quiet