Skip to content
Snippets Groups Projects
.gitlab-ci-unix.yml 8.36 KiB
Newer Older
Deucе's avatar
Deucе committed
spec:
  inputs:
    os:
    platform:
    tagname:
    cross_platform:
      default: 'no'
    build_flags:
      default: 'RELEASE=1'
    no_javascript:
      default: 'no'
---

".$[[ inputs.os ]]":
  extends: .rules
  tags: 
    - "$[[ inputs.tagname ]]"
  variables:
    CROSS_PLATFORM: "$[[ inputs.cross_platform ]]"
    OS: "$[[ inputs.os ]]"
    PLATFORM: "$[[ inputs.platform ]]"
    OSP: "$[[ inputs.os ]]-$[[ inputs.platform ]]"
    BUILD_FLAGS: "$[[ inputs.build_flags ]]"
    NO_JAVASCRIPT: "$[[ inputs.no_javascript ]]"
Deucе's avatar
Deucе committed
    GIT_STRATEGY: fetch

".$[[ inputs.os ]]-build":
  stage: build
  extends: .$[[ inputs.os ]]

".$[[ inputs.os ]]-test":
  stage: test
  extends: .$[[ inputs.os ]]

"spidermonkey-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
    - .rules
Deucе's avatar
Deucе committed
  script:
    - cd 3rdp/build
    - gmake ${BUILD_FLAGS} libmozjs
  artifacts:
    name: "spidermonkey-${OSP}"
    paths:
      - "3rdp/*.*.*.release/mozjs"
  rules:
    - if: $NO_JAVASCRIPT == "yes"
      when: never
    - changes:
      - src/**/*
      - 3rdp/**/*
      - ctrl/text.dat
      - xtrn/**/{GNUm,M}akefile
      - xtrn/**/*.{c,h,cpp,hpp,mk}
"cryptlib-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd 3rdp/build
    - gmake ${BUILD_FLAGS} cryptlib
  artifacts:
    name: "cryptlib-${OSP}"
    paths:
      - "3rdp/*.*.*.release/cl"

"xpdev-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/xpdev
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "xpdev-${OSP}"
    paths:
      - "src/xpdev/*.*.*.lib.release*"
Deucе's avatar
Deucе committed
      - "src/xpdev/*.*.*.obj.release*"
"encode-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/encode
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "encode-${OSP}"
    paths:
      - "src/encode/*.*.*.lib.release*"
      - "src/encode/*.*.*.obj.release*"
"hash-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/hash
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "hash-${OSP}"
    paths:
      - "src/hash/*.*.*.lib.release*"
      - "src/hash/*.*.*.obj.release*"
"ciolib-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
Deucе's avatar
Deucе committed
    - cd src/conio
Deucе's avatar
Deucе committed
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "ciolib-${OSP}"
    paths:
Deucе's avatar
Deucе committed
      - "src/conio/*.*.*.lib.release*"
      - "src/conio/*.*.*.obj.release*"
"sftp-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/sftp
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "sftp-${OSP}"
    paths:
      - "src/sftp/*.*.*.lib.release*"
      - "src/sftp/*.*.*.obj.release*"
"smblib-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/smblib
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "smblib-${OSP}"
    paths:
      - "src/smblib/*.*.*.lib.release*"
      - "src/smblib/*.*.*.obj.release*"
"uifc-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/uifc
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "uifc-${OSP}"
    paths:
      - "src/uifc/*.*.*.lib.release*"
      - "src/uifc/*.*.*.obj.release*"
Deucе's avatar
Deucе committed
  needs:
Deucе's avatar
Deucе committed
    - job: "xpdev-$[[ inputs.os ]]"
    - job: "ciolib-$[[ inputs.os ]]"
"gitinfo-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3
    - gmake ${BUILD_FLAGS} gitinfo
  artifacts:
    name: "gitinfo-${OSP}"
    paths:
      - "src/sbbs3/git_*.h"

"utils-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3
    - gmake ${BUILD_FLAGS} utils
  artifacts:
    name: "utils-${OSP}"
    paths:
      - "src/sbbs3/*.exe.release/*"
  needs:
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
    - job: "gitinfo-$[[ inputs.os ]]"

"scfg-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3/scfg
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "scfg-${OSP}"
    paths:
      - "src/sbbs3/scfg/*.exe.release/*"
  needs:
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "cryptlib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
    - job: "gitinfo-$[[ inputs.os ]]"

"uedit-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3/uedit
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "uedit-${OSP}"
    paths:
      - "src/sbbs3/uedit/*.exe.release/*"
  needs:
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
    - job: "gitinfo-$[[ inputs.os ]]"

"umonitor-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
  script:
    - cd src/sbbs3/umonitor
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "umonitor-${OSP}"
    paths:
      - "src/sbbs3/umonitor/*.exe.release/*"
  needs:
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"

"sbbs-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/sbbs3
    - gmake ${BUILD_FLAGS} all
  artifacts:
    name: "sbbs-${OSP}"
    paths:
      - "src/sbbs3/*.exe.release/*"
      - "src/sbbs3/*.lib.release/*"
      - "src/sbbs3/*/*.exe.release/*"
  needs:
Deucе's avatar
Deucе committed
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "cryptlib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "scfg-$[[ inputs.os ]]"
Deucе's avatar
Deucе committed
    - job: "sftp-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "spidermonkey-$[[ inputs.os ]]"
    - job: "uedit-$[[ inputs.os ]]"
Deucе's avatar
Deucе committed
    - job: "uifc-$[[ inputs.os ]]"
    - job: "umonitor-$[[ inputs.os ]]"
    - job: "utils-$[[ inputs.os ]]"
Deucе's avatar
Deucе committed
    - job: "xpdev-$[[ inputs.os ]]"
  rules:
    - if: $NO_JAVASCRIPT == "yes"
      when: never
Deucе's avatar
Deucе committed
    - if: $CROSS_PLATFORM == "yes"
      when: never
    - changes:
      - src/**/*
      - 3rdp/**/*
      - ctrl/text.dat
      - xtrn/**/{GNUm,M}akefile
      - xtrn/**/*.{c,h,cpp,hpp,mk}
"syncterm-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/syncterm
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "syncterm-${OSP}"
    paths:
      - "src/syncterm/*.exe.release/*"
  needs:
Deucе's avatar
Deucе committed
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "cryptlib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "sftp-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
"syncdraw-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/syncdraw
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "syncdraw-${OSP}"
    paths:
      - "src/syncdraw/*.exe.release/*"
  needs:
Deucе's avatar
Deucе committed
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
"jsdoor-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/sbbs3
    - gmake ${BUILD_FLAGS} jsdoor
  artifacts:
    name: "jsdoor-${OSP}"
    paths:
      - "src/sbbs3/*.exe.release/*"
  needs:
Deucе's avatar
Deucе committed
    - job: "ciolib-$[[ inputs.os ]]"
    - job: "cryptlib-$[[ inputs.os ]]"
    - job: "encode-$[[ inputs.os ]]"
    - job: "hash-$[[ inputs.os ]]"
    - job: "sftp-$[[ inputs.os ]]"
    - job: "smblib-$[[ inputs.os ]]"
    - job: "spidermonkey-$[[ inputs.os ]]"
    - job: "uifc-$[[ inputs.os ]]"
    - job: "xpdev-$[[ inputs.os ]]"
  rules:
    - if: $NO_JAVASCRIPT == "yes"
      when: never
    - changes:
      - src/**/*
      - 3rdp/**/*
      - ctrl/text.dat
      - xtrn/**/{GNUm,M}akefile
      - xtrn/**/*.{c,h,cpp,hpp,mk}
"sexpots-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-build
Deucе's avatar
Deucе committed
  script:
    - cd src/sexpots
    - gmake ${BUILD_FLAGS}
  artifacts:
    name: "sexpots-${OSP}"
    paths:
      - "src/sexpots/*.exe.release/*"
  needs:
Deucе's avatar
Deucе committed
    - job: "xpdev-$[[ inputs.os ]]"
Deucе's avatar
Deucе committed
"js-testsuite-$[[ inputs.os ]]":
  extends:
    - .$[[ inputs.os ]]-test
  script:
    - "src/sbbs3/*.exe.release/jsdoor exec/tests/test.js"
  dependencies:
    - "jsdoor-$[[ inputs.os ]]"
  rules:
    - if: $CROSS_PLATFORM == "yes"
      when: never
Deucе's avatar
Deucе committed
    - if: $NO_JAVASCRIPT == "yes"
      when: never
    - changes:
      - src/**/*
      - 3rdp/**/*
      - ctrl/text.dat
      - xtrn/**/{GNUm,M}akefile
      - xtrn/**/*.{c,h,cpp,hpp,mk}