nandi/frqpublic Fork 0
87a28ccbc1ad41565d24fa8c4f68e1f9426fd61e
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

The binding is Dart, and it works f7aea3b · on 87a28ccbc1ad41565d24fa8c4f68e1f9426fd61e · nandi · 14h ago
.gitlab-ci.yml · 41 lines · 1.8 KBYAML Blame HistoryRaw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# One job: a check on what common/ is allowed to contain, on every push.
#
# Nothing is built here. The check reads source and no more, so this file needs
# no toolchain at all, which is what keeps it honest about running on every
# push. There used to be a second, scheduled job that re-resolved the
# jolt-native flake input; there is no jolt half any more and no input to
# follow, so there is nothing for a schedule to do.
stages: [check]

# common/ is compiled by ClojureDart for two targets — the APK and the Linux
# desktop — and shared code reaching for the JVM or a `dart:` library breaks
# one of them at a namespace nobody touched. `Math/ceil` in the compose bar was
# the third time. Reading the source is enough to catch it, which is why this
# needs no toolchain and no builder: python and a checkout, a few seconds, on
# every push.
check-common:
  stage: check
  image: python:3-alpine
  script:
    - python3 tools/check-common.py common

# The Nim core's tests. A second job rather than a step in the first, because
# it wants a compiler where check-common wants nothing: one can fail without
# hiding the other, and the pair of them is still seconds.
nim-test:
  stage: check
  image: nimlang/nim:2.2.0-alpine
  script:
    - cd nim && for t in tests/t*.nim; do nim c -r --hints:off --path:src "$t"; done

# The Dart side of the same boundary. Needs the Nim library built first, which
# is why this is one job and not two: the artifact would be larger than the
# build that makes it.
dart-test:
  stage: check
  image: dart:3.13
  script:
    - apt-get update -qq && apt-get install -y -qq nim
    - cd nim && nim c --app:lib --mm:orc -d:release --hints:off --path:src
        --out:../build/nim/libfrqcore.so src/frq_core.nim
    - cd ../dart/frq_core && dart pub get && dart test -r expanded