Skip to content
Snippets Groups Projects
.gitlab-ci-unix.yml 29.8 KiB
Newer Older
# TODO: The bad touching needs to be solved in the build system, but
#       maybe there's a way to automate it with needs?
#       Build the various sbbs libraries separately as well.
Deucе's avatar
Deucе committed
spec:
  inputs:
    os:
    platform:
    tagname:
    cross_platform:
      default: 'no'
    build_flags:
Deucе's avatar
Deucе committed
      default: 'RELEASE=1'
Deucе's avatar
Deucе committed
    no_javascript:
      default: 'no'
Deucе's avatar
Deucе committed
    has_curses:
      default: 'yes'
Deucе's avatar
Deucе committed
    has_gtk:
      default: 'no'
    gnu_make:
      default: 'gmake'
Deucе's avatar
Deucе committed
---

".$[[ inputs.os ]]":
  extends: .rules
Deucе's avatar
Deucе committed
  tags:
    - "$[[ inputs.tagname ]]"
Deucе's avatar
Deucе committed
".$[[ inputs.os ]]-build":
  stage: build
  extends: .$[[ inputs.os ]]
Deucе's avatar
Deucе committed
".$[[ inputs.os ]]-test":
  stage: test
  extends: .$[[ inputs.os ]]
".$[[ inputs.os ]]-cleanup":
  stage: cleanup
  extends: .$[[ inputs.os ]]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [spidermonkey]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd 3rdp/build
    - JS_CONFIGURE_ARGS="--cache-file=../../../../../build/smconfig.cache" $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS libmozjs
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/spidermonkey.tgz" 3rdp/*.release/mozjs
Deucе's avatar
Deucе committed
  rules:
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.no_javascript ]]" == "yes"'
Deucе's avatar
Deucе committed
      when: never
    - !reference [.rules, rules]
  cache:
    key: $CI_JOB_NAME
    paths:
      - 3rdp/build/smconfig.cache*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd 3rdp/build
Deucе's avatar
Deucе committed
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] FIXED_FIXED_SEED=1 $BUILD_ARGS cryptlib
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz" 3rdp/*.release/cl
"$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/xpdev
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz" src/xpdev/*.lib.release* src/xpdev/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/encode
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz" src/encode/*.lib.release* src/encode/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/hash
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz" src/hash/*.lib.release* src/hash/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
Deucе's avatar
Deucе committed
    - cd src/conio
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz" src/conio/*.lib.release* src/conio/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [sftp]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/sftp
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sftp.tgz" src/sftp/*.lib.release* src/sftp/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz" src/smblib/*.lib.release* src/smblib/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/uifc
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz" src/uifc/*.lib.release* src/uifc/*.obj.release*/*.o*
"$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS gitinfo
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz" src/sbbs3/git_*.h
"$[[ inputs.os ]]-$[[ inputs.platform ]] [scfg]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz"
    - cd src/sbbs3/scfg
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch ciolib-mt
    - touch uifc
    - touch uifc-mt
    - touch cl
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS GIT=NO
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/scfg.tgz" src/sbbs3/scfg/*.exe.release* src/sbbs3/scfg/*.obj.release*/*.o*
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]"
"$[[ inputs.os ]]-$[[ inputs.platform ]] [uedit]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz"
    - cd src/sbbs3/uedit
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch ciolib-mt
    - touch uifc
    - touch uifc-mt
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS GIT=NO
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uedit.tgz" src/sbbs3/uedit/*.exe.release* src/sbbs3/uedit/*.obj.release*/*.o*
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]"
Deucе's avatar
Deucе committed
  rules:
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.has_curses ]]" == "no"'
Deucе's avatar
Deucе committed
      when: never
    - !reference [.rules, rules]
"$[[ inputs.os ]]-$[[ inputs.platform ]] [umonitor]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - cd src/sbbs3/umonitor
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch ciolib-mt
    - touch uifc
    - touch uifc-mt
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/umonitor.tgz" src/sbbs3/umonitor/*.exe.release* src/sbbs3/umonitor/*.obj.release*/*.o*
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
"$[[ inputs.os ]]-$[[ inputs.platform ]] [utils]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - touch cl
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch ciolib-mt
    - touch uifc
    - touch uifc-mt
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS GIT=NO standalone-utils
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/utils.tgz" src/sbbs3/*.exe.release* src/sbbs3/*.obj.release*/*.o*
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
"$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/spidermonkey.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sftp.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz"
Deucе's avatar
Deucе committed
    - cd src/sbbs3
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch smblib
    - touch uifc
    - touch uifc-mt
    - touch ciolib-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch sftp-mt
    - touch cl
    - touch scfg/xpdev-mt
    - touch scfg/uifc-mt
    - touch scfg/ciolib-mt
    - touch scfg/smblib
    - touch scfg/encode
    - touch scfg/hash
    - touch scfg/cl
    - touch uedit/smblib
    - touch uedit/uifc-mt
    - touch uedit/ciolib-mt
    - touch uedit/xpdev-mt
    - touch umonitor/ciolib-mt
    - touch umonitor/uifc-mt
    - touch umonitor/xpdev-mt
    - touch umonitor/smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS GIT=NO all
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
Deucе's avatar
Deucе committed
    - cd ../..
Deucе's avatar
Deucе committed
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build${EXTRA_FILENAME}.tgz" src/sbbs3/*.exe.release* src/sbbs3/*.obj.release*/*.o* src/sbbs3/*.lib.release/* src/sbbs3/*/*.exe.release/*
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [spidermonkey]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sftp]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]"
  rules:
    - if: '"$[[ inputs.no_javascript ]]" == "yes"'
      when: never
    - if: '"$[[ inputs.cross_platform ]]" == "yes"'
      when: never
    - !reference [.rules, rules]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [jsdoor]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/spidermonkey.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/gitinfo.tgz"
    - cd src/sbbs3
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch smblib
    - touch uifc
    - touch uifc-mt
    - touch ciolib-mt
    - touch encode
    - touch hash
    - touch smblib
    - touch cl
    - touch scfg/xpdev-mt
    - touch scfg/uifc-mt
    - touch scfg/ciolib-mt
    - touch scfg/smblib
    - touch scfg/encode
    - touch scfg/hash
    - touch scfg/cl
    - touch uedit/smblib
    - touch uedit/uifc-mt
    - touch uedit/ciolib-mt
    - touch uedit/xpdev-mt
    - touch umonitor/ciolib-mt
    - touch umonitor/uifc-mt
    - touch umonitor/xpdev-mt
    - touch umonitor/smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS jsdoor
    - mkdir -p "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"
    - cd ../..
    - tar -czf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/jsdoor.tgz" src/sbbs3/*.exe.release/jsdoor
Deucе's avatar
Deucе committed
  artifacts:
    expire_in: 30 mins
    name: "jsdoor-$[[ inputs.os ]]-$[[ inputs.platform ]]"
Deucе's avatar
Deucе committed
    paths:
      - "src/sbbs3/*.exe.release/jsdoor"
Deucе's avatar
Deucе committed
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [spidermonkey]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [gitinfo]"
  rules:
    - if: '"$[[ inputs.no_javascript ]]" == "yes"'
      when: never
    - if: '"$[[ inputs.cross_platform ]]" == "yes"'
      when: never
    - !reference [.rules, rules]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/scfg.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uedit.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/umonitor.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/utils.tgz"
  artifacts:
    name: "sbbs-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/sbbs3/*.exe.release/*"
      - "src/sbbs3/*.lib.release/*"
      - "src/sbbs3/*/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [scfg]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uedit]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [umonitor]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [utils]"
  rules:
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.no_javascript ]]" == "yes"'
      when: never
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.cross_platform ]]" == "yes"'
Deucе's avatar
Deucе committed
      when: never
    - !reference [.rules, rules]
"$[[ inputs.os ]]-$[[ inputs.platform ]] [syncterm]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sftp.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/uifc.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
Deucе's avatar
Deucе committed
    - cd src/syncterm
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch ciolib-mt
    - touch uifc
    - touch uifc-mt
    - touch sftp-mt
    - touch cl
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
Deucе's avatar
Deucе committed
    name: "syncterm-$[[ inputs.os ]]-$[[ inputs.platform ]]"
Deucе's avatar
Deucе committed
    paths:
      - "src/syncterm/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sftp]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [uifc]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
Deucе's avatar
Deucе committed
"$[[ inputs.os ]]-$[[ inputs.platform ]] [syncterm-cmake]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/syncterm
    - mkdir build
    - cd build
    - cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DFIXED_FIXED_SEED=ON ..
Deucе's avatar
Deucе committed
    - cmake --build .
  artifacts:
    name: "syncterm-cmake-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/syncterm/build/syncterm*"
  rules:
    - if: '"$[[ inputs.cross_platform ]]" == "yes"'
      when: never
    - !reference [.rules, rules]
"$[[ inputs.os ]]-$[[ inputs.platform ]] [syncdraw]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/ciolib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
Deucе's avatar
Deucе committed
    - cd src/syncdraw
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch ciolib-mt
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
Deucе's avatar
Deucе committed
    name: "syncdraw-$[[ inputs.os ]]-$[[ inputs.platform ]]"
Deucе's avatar
Deucе committed
    paths:
      - "src/syncdraw/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [ciolib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
"$[[ inputs.os ]]-$[[ inputs.platform ]] [sexpots]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
Deucе's avatar
Deucе committed
    - cd src/sexpots
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
Deucе's avatar
Deucе committed
    name: "sexpots-$[[ inputs.os ]]-$[[ inputs.platform ]]"
Deucе's avatar
Deucе committed
    paths:
      - "src/sexpots/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
Deucе's avatar
Deucе committed
"$[[ inputs.os ]]-$[[ inputs.platform ]] [gtkchat]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/encode.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/hash.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
Deucе's avatar
Deucе committed
    - cd src/sbbs3/gtkchat
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch encode
    - touch hash
    - touch smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
    name: "gtkchat-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/sbbs3/gtkchat/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [encode]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [hash]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
  rules:
    - if: '"$[[ inputs.has_gtk ]]" == "no"'
      when: never
    - !reference [.rules, rules]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [gtkmonitor]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/spidermonkey.tgz"
Deucе's avatar
Deucе committed
    - cd src/sbbs3/gtkmonitor
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
    name: "gtkmonitor-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/sbbs3/gtkmonitor/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
Deucе's avatar
Deucе committed
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [spidermonkey]"
Deucе's avatar
Deucе committed
  rules:
    - if: '"$[[ inputs.has_gtk ]]" == "no"'
      when: never
    - !reference [.rules, rules]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [gtkuseredit]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/spidermonkey.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build.tgz"
Deucе's avatar
Deucе committed
    - cd src/sbbs3/gtkuseredit
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
    name: "gtkuseredit-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/sbbs3/gtkuseredit/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [spidermonkey]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
Deucе's avatar
Deucе committed
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]"
Deucе's avatar
Deucе committed
  rules:
    - if: '"$[[ inputs.has_gtk ]]" == "no"'
      when: never
    - !reference [.rules, rules]

"$[[ inputs.os ]]-$[[ inputs.platform ]] [gtkuserlist]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/cryptlib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/xpdev.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/smblib.tgz"
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/sbbs-build.tgz"
Deucе's avatar
Deucе committed
    - cd src/sbbs3/gtkuserlist
    - touch depend
    - touch xpdev
    - touch xpdev-mt
    - touch smblib
    - $[[ inputs.gnu_make ]] $[[ inputs.build_flags ]] $BUILD_ARGS
Deucе's avatar
Deucе committed
  artifacts:
    name: "gtkuserlist-$[[ inputs.os ]]-$[[ inputs.platform ]]"
    paths:
      - "src/sbbs3/gtkuserlist/*.exe.release/*"
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [cryptlib]"
Deucе's avatar
Deucе committed
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [xpdev]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [smblib]"
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [sbbs-build]"
Deucе's avatar
Deucе committed
  rules:
    - if: '"$[[ inputs.has_gtk ]]" == "no"'
      when: never
    - !reference [.rules, rules]

#########
# Tests #
#########
Deucе's avatar
Deucе committed
"$[[ inputs.os ]]-$[[ inputs.platform ]] js-testsuite":
Deucе's avatar
Deucе committed
  extends:
    - .$[[ inputs.os ]]-test
    - tar -xzf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}/jsdoor.tgz"
    - "src/sbbs3/*.exe.release/jsdoor exec/tests/test.js"
Deucе's avatar
Deucе committed
  needs:
    - job: "$[[ inputs.os ]]-$[[ inputs.platform ]] [jsdoor]"
      artifacts: false
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.cross_platform ]]" == "yes"'
      when: never
Deucе's avatar
Deucе committed
    - if: '"$[[ inputs.no_javascript ]]" == "yes"'
Deucе's avatar
Deucе committed
      when: never
    - !reference [.rules, rules]
"$[[ inputs.os ]]-$[[ inputs.platform ]] cleanup":
  extends:
    - .$[[ inputs.os ]]-cleanup
  script:
    - rm -rf "/tmp/gitlab-runner/$[[ inputs.os ]]-$[[ inputs.platform ]]-${CI_PIPELINE_ID}"