diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18ddf61..44554c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,10 +35,7 @@ jobs: otp-version: ${{ env.otp }} gleam-version: ${{ env.gleam }} rebar3-version: ${{ env.rebar }} - - run: gleam test --target erlang - - run: gleam run --target erlang - - run: gleam run --target erlang -- test - - run: ./scripts/assert_test.sh + - run: ./scripts/target_test.sh erlang node: runs-on: ubuntu-latest @@ -58,10 +55,7 @@ jobs: node-version: ${{ matrix.node-version }} cache: "npm" - run: yarn install - - run: gleam test --target javascript --runtime nodejs - - run: gleam run --target javascript --runtime nodejs - - run: gleam run --target javascript --runtime nodejs -- test - - run: ./scripts/assert_test.sh + - run: ./scripts/target_test.sh javascript nodejs bun: runs-on: ubuntu-latest @@ -74,10 +68,7 @@ jobs: rebar3-version: ${{ env.rebar }} - uses: oven-sh/setup-bun@v1 - run: bun install - - run: gleam test --target javascript --runtime bun - - run: gleam run --target javascript --runtime bun - - run: gleam run --target javascript --runtime bun -- test - - run: ./scripts/assert_test.sh + - run: ./scripts/target_test.sh javascript bun deno: runs-on: ubuntu-latest @@ -91,7 +82,4 @@ jobs: - uses: denoland/setup-deno@v1 with: deno-version: v1.x # Run with latest stable Deno. - - run: gleam test --target javascript --runtime deno - - run: gleam run --target javascript --runtime deno - - run: gleam run --target javascript --runtime deno -- test - - run: ./scripts/assert_test.sh + - run: ./scripts/target_test.sh javascript deno diff --git a/scripts/assert_test.sh b/scripts/assert_test.sh deleted file mode 100755 index 95bab21..0000000 --- a/scripts/assert_test.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -e - -test -f ".test-run" || (echo ".test-run: not found" && exit 1) -rm -rf .test-run diff --git a/scripts/target_test.sh b/scripts/target_test.sh new file mode 100755 index 0000000..d4c7647 --- /dev/null +++ b/scripts/target_test.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -e +cd "$(dirname "$0")/.." + +TARGET="$1" +RUNTIME="$2" +if [ "$TARGET" = "erlang" ]; then + CMD='--target erlang' +else + CMD="--target javascript --runtime $RUNTIME" +fi + +function clean() { + rm -rf .test-run + rm -rf ".git/hooks/test" +} + +clean +gleam test $CMD +gleam run $CMD + +test -f ".git/hooks/test" || (echo "test: not found" && exit 1) +gleam run $CMD -- test + +test -f ".test-run" || (echo ".test-run: not found" && exit 1) +clean \ No newline at end of file diff --git a/scripts/test.sh b/scripts/test.sh index ef4a8e5..ac0bdd4 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -9,44 +9,15 @@ gleam check gleam update gleam build gleam format -rm -rf ".git/hooks/" -rm -rf .test-run - -function assert_hooks() { - test -f ".git/hooks/pre-commit" || (echo "pre-commit: not found" && exit 1) - test -f ".git/hooks/pre-push" || (echo "pre-push: not found" && exit 1) - test -f ".git/hooks/test" || (echo "test: not found" && exit 1) -} echo -e "${GREEN}==> erlang${NC}" -gleam test --target erlang -gleam run --target erlang -assert_hooks -gleam run --target erlang -- test -./scripts/assert_test.sh -rm -rf ".git/hooks/" +./scripts/target_test.sh erlang echo -e "${GREEN}==> nodejs${NC}" -gleam test --target javascript --runtime nodejs -gleam run --target javascript --runtime nodejs -assert_hooks -gleam run --target javascript --runtime nodejs -- test -./scripts/assert_test.sh -rm -rf ".git/hooks/" +./scripts/target_test.sh javascript nodejs echo -e "${GREEN}==> deno${NC}" -gleam test --target javascript --runtime deno -gleam run --target javascript --runtime deno -assert_hooks -gleam run --target javascript --runtime deno -- test -./scripts/assert_test.sh -rm -rf ".git/hooks/" +./scripts/target_test.sh javascript deno echo -e "${GREEN}==> bun${NC}" -gleam test --target javascript --runtime bun -gleam run --target javascript --runtime bun -assert_hooks -gleam run --target javascript --runtime bun -- test -./scripts/assert_test.sh - -gleam run \ No newline at end of file +./scripts/target_test.sh javascript bun \ No newline at end of file