OpenMediaCenter/.gitlab-ci.yml

96 lines
2.1 KiB
YAML
Raw Normal View History

image: node:14
2020-06-09 15:49:41 +00:00
stages:
2020-06-20 08:02:03 +00:00
- prepare
2020-06-09 15:49:41 +00:00
- build
2020-06-20 08:02:03 +00:00
- test
- packaging
- deploy
2020-06-09 15:49:41 +00:00
cache:
paths:
- node_modules/
2020-06-29 19:20:14 +00:00
include:
- template: Code-Quality.gitlab-ci.yml
2020-06-09 15:49:41 +00:00
variables:
SAST_DISABLE_DIND: "true"
2020-06-20 08:02:03 +00:00
prepare:
stage: prepare
script:
- npm install --progress=false
build:
stage: build
script:
- npm run build
artifacts:
expire_in: 7 days
paths:
- build/
needs: ["prepare"]
2020-06-20 08:02:03 +00:00
2020-06-09 15:49:41 +00:00
test:
stage: test
script:
2020-06-09 19:54:52 +00:00
- CI=true npm run test
artifacts:
reports:
junit:
- ./junit.xml
needs: ["prepare"]
2020-06-09 15:49:41 +00:00
2020-11-12 09:32:46 +00:00
code_quality:
tags:
- dind
2020-06-09 18:10:26 +00:00
coverage:
2020-06-20 08:02:03 +00:00
stage: test
2020-06-09 18:10:26 +00:00
script:
2020-06-09 19:54:52 +00:00
- CI=true npm run coverage
2020-06-09 18:10:26 +00:00
artifacts:
reports:
2020-06-09 19:54:52 +00:00
cobertura:
- ./coverage/cobertura-coverage.xml
needs: ["prepare"]
package_debian:
stage: packaging
image: debian
script:
- vers=$(grep -Po '"version":.*?[^\\]",' package.json | grep -Po '[0-9]+\.[0-9]+\.[0-9]+') # parse the version out of package .json
- cd deb
- mkdir -p "./OpenMediaCenter/var/www/openmediacenter/videos/"
- mkdir -p "./OpenMediaCenter/tmp/"
- cp -r ../build/* ./OpenMediaCenter/var/www/openmediacenter/
- cp -r ../api ./OpenMediaCenter/var/www/openmediacenter/
- cp ../database.sql ./OpenMediaCenter/tmp/openmediacenter.sql
- 'echo "Version: ${vers}" >> ./OpenMediaCenter/DEBIAN/control'
- chmod -R 0775 *
- dpkg-deb --build OpenMediaCenter
- mv OpenMediaCenter.deb OpenMediaCenter-${vers}_amd64.deb
artifacts:
paths:
- deb/OpenMediaCenter-*.deb
needs: ["build"]
deploy_test1:
stage: deploy
image: luki42/alpineopenssh:latest
needs:
- test
- package_debian
only:
- master
script:
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- scp deb/OpenMediaCenter-*.deb root@192.168.0.42:/tmp/
- ssh root@192.168.0.42 "DEBIAN_FRONTEND=noninteractive apt-get --reinstall -y -qq install /tmp/OpenMediaCenter-*.deb && rm /tmp/OpenMediaCenter-*.deb"
allow_failure: true