Newer
Older
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 ]]"
".$[[ inputs.os ]]-build":
stage: build
extends: .$[[ inputs.os ]]
".$[[ inputs.os ]]-test":
stage: test
extends: .$[[ inputs.os ]]
"spidermonkey-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
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
script:
- cd 3rdp/build
- gmake ${BUILD_FLAGS} cryptlib
artifacts:
name: "cryptlib-${OSP}"
paths:
- "3rdp/*.*.*.release/cl"
"xpdev-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/xpdev
- gmake ${BUILD_FLAGS}
artifacts:
name: "xpdev-${OSP}"
paths:
- "src/xpdev/*.*.*.lib.release*"
"encode-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/encode
- gmake ${BUILD_FLAGS}
artifacts:
name: "encode-${OSP}"
paths:
- "src/encode/*.*.*.lib.release*"
"hash-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/hash
- gmake ${BUILD_FLAGS}
artifacts:
name: "hash-${OSP}"
paths:
- "src/hash/*.*.*.lib.release*"
"ciolib-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
- gmake ${BUILD_FLAGS}
artifacts:
name: "ciolib-${OSP}"
paths:
"sftp-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/sftp
- gmake ${BUILD_FLAGS}
artifacts:
name: "sftp-${OSP}"
paths:
- "src/sftp/*.*.*.lib.release*"
"smblib-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/smblib
- gmake ${BUILD_FLAGS}
artifacts:
name: "smblib-${OSP}"
paths:
- "src/smblib/*.*.*.lib.release*"
"uifc-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/uifc
- gmake ${BUILD_FLAGS}
artifacts:
name: "uifc-${OSP}"
paths:
- "src/uifc/*.*.*.lib.release*"
- 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
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:
- 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: "umonitor-$[[ inputs.os ]]"
- job: "utils-$[[ 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}
"syncterm-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/syncterm
- gmake ${BUILD_FLAGS}
artifacts:
name: "syncterm-${OSP}"
paths:
- "src/syncterm/*.exe.release/*"
needs:
- 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
script:
- cd src/syncdraw
- gmake ${BUILD_FLAGS}
artifacts:
name: "syncdraw-${OSP}"
paths:
- "src/syncdraw/*.exe.release/*"
needs:
"jsdoor-$[[ inputs.os ]]":
extends:
- .$[[ inputs.os ]]-build
script:
- cd src/sbbs3
- gmake ${BUILD_FLAGS} jsdoor
artifacts:
name: "jsdoor-${OSP}"
paths:
- "src/sbbs3/*.exe.release/*"
needs:
- 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
script:
- cd src/sexpots
- gmake ${BUILD_FLAGS}
artifacts:
name: "sexpots-${OSP}"
paths:
- "src/sexpots/*.exe.release/*"
needs:
"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