Skip to content

Add unittests written in typescript #61

Add unittests written in typescript

Add unittests written in typescript #61

Workflow file for this run

name: Test the action
on:
push:
branches:
- "v*"
pull_request:
branches:
- "*"
defaults:
run:
shell: bash
jobs:
verify-index-js-up-to-date:
name: Verify that `dist/index.js` is up to date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: diff-ing dist/index.js
env:
NODE_OPTIONS: "--openssl-legacy-provider"
run: |
set -euxo pipefail
npm ci
npm run build
# exclude dist/index.js.map (different on Windows)
git diff --stat --exit-code HEAD -- ':!dist/index.js.map'
verify-dmd:
needs: verify-index-js-up-to-date
strategy:
max-parallel: 5
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
dc: [
dmd,
dmd-2.099.1,
dmd-2.108.1-rc.1,
dmd-2.106,
dmd-2.106b,
dmd-latest,
dmd-beta,
dmd^3,
dmd-master,
]
include:
# macOS-latest is arm64, not supported by dmd
# Needs >=dmd-2.107.1 due to https://issues.dlang.org/show_bug.cgi?id=24137
- { os: macOS-13, dc: dmd-2.108.1-rc.1 }
- { os: macOS-13, dc: dmd-2.107 }
- { os: macOS-13, dc: dmd-latest }
- { os: macOS-13, dc: dmd-master }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/verify-d-compiler
with:
dc: ${{ matrix.dc }}
verify-ldc:
needs: verify-index-js-up-to-date
strategy:
max-parallel: 5
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macOS-latest, macOS-13 ]
dc: [
ldc,
ldc-1.19.0,
ldc-1.37.0-beta1,
ldc-1.36,
ldc-1.38b,
ldc-latest,
ldc-beta,
ldc^3,
ldc-master,
]
exclude:
# arm64 binaries are available since ldc-1.25.0
- { os: macOS-latest, dc: ldc-1.19.0 }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/verify-d-compiler
with:
dc: ${{ matrix.dc }}
verify-gdmd:
needs: verify-index-js-up-to-date
strategy:
max-parallel: 5
fail-fast: false
matrix:
# gdc and gdmd are only supported on ubuntu
os: [ ubuntu-latest ]
dc: [ gdmd, gdmd-12 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/verify-d-compiler
with:
dc: ${{ matrix.dc }}
verify-default:
needs: verify-index-js-up-to-date
name: Verify default compiler
strategy:
max-parallel: 5
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macOS-latest, macOS-13 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/verify-d-compiler
dub:
name: Verify standalone DUB install
needs: verify-index-js-up-to-date
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macOS-13 ]
dc: [ ldc-latest, dmd-latest, gdc, gdmd-12 ]
dub: [ 1.19.0, 1.23.0, latest ]
exclude:
# Excluded because those are actually Linux executables
- { os: windows-latest, dub: 1.19.0 }
# gdc only supports Linux
- { os: windows-latest, dc: gdc }
- { os: windows-latest, dc: gdmd-12 }
- { os: macOS-13, dc: gdc }
- { os: macOS-13, dc: gdmd-12 }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install D compiler
uses: ./
with:
compiler: ${{ matrix.dc }}
dub: ${{ matrix.dub }}
gdmd_sha: 'dc0ad9f739795f3ce5c69825efcd5d1d586bb013'
- name: Verify DUB version
run: |
if [[ ${{ matrix.dub }} == 'latest' ]]
then
curlCmd=(
curl -s
--header "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}"
https://api.github.com/repos/dlang/dub/releases/latest
)
DUB_VERSION_FOR_TEST=$("${curlCmd[@]}" | jq -r '.tag_name | sub("v(?<v>.+)"; .v)')
else
DUB_VERSION_FOR_TEST=${{ matrix.dub }}
fi
echo "dub path is: `which dub`"
echo "dub version is: `dub --version`"
echo "We expect version: $DUB_VERSION_FOR_TEST"
if [[ "$(dub --version)" =~ "version $DUB_VERSION_FOR_TEST" ]]
then
echo "Match"
else
exit 1
fi
- name : Compile with dub
run: |
cd .github && dub run --single hello.d --compiler=${DC}