matrix:
  platform:
    - linux/amd64

labels:
  platform: ${platform}
    
steps:
  build-n-test:
    when:
      event: [push]
    image: alpine:latest
    commands:
      - apk update
      - apk add --no-cache bash build-base words-en gdb valgrind
      # build
      - make
      # look for memory leaks etc
      - valgrind --leak-check=full --show-reachable=yes ./dicepwgen 2>&1 | tee log | grep "All heap blocks were freed"
      - cat log
      # enable in case of a crash
      #- gdb -batch -ex "run" -ex "bt" --args dicepwgen
      # check if we really get a password
      - ./dicepwgen -y | grep -E '[a-z]*%'
      # check a custom dict file and if we get 6 words when requested
      - test 6 -eq $(./dicepwgen -f contrib/american-english-insane -c 6 | tee log | sed 's/[a-zA-Z]//g' | wc -c)
      - cat log


