OpenMediaCenter/.gitlab-ci.yml

129 lines
3.0 KiB
YAML
Raw Normal View History

image: node:14
2020-06-09 15:49:41 +00:00
stages:
- build_frontend
- build_backend
2020-06-20 08:02:03 +00:00
- test
- packaging
- deploy
2020-06-09 15:49:41 +00:00
Minimize_Frontend:
stage: build_frontend
before_script:
- yarn install --cache-folder .yarn
script:
- yarn run build
- rm build/*/*/*.map
artifacts:
expire_in: 2 days
paths:
- build/
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .yarn/
- node_modules/
Build_Backend:
2021-09-26 19:26:32 +00:00
image: luki42/go-ffmpeg:latest
stage: build_backend
2020-06-20 08:02:03 +00:00
script:
- cd apiGo
- go build -v -tags sharedffmpeg -o openmediacenter
- cp -r ../build/ ./static/
- go build -v -tags static -o openmediacenter_full
- env GOOS=windows GOARCH=amd64 go build -v -tags static -o openmediacenter.exe
needs:
- Minimize_Frontend
2020-06-20 08:02:03 +00:00
artifacts:
expire_in: 2 days
2020-06-20 08:02:03 +00:00
paths:
- "./apiGo/openmediacenter*"
2020-06-20 08:02:03 +00:00
Frontend_Tests:
2020-06-09 15:49:41 +00:00
stage: test
before_script:
- yarn install --cache-folder .yarn
2020-06-09 15:49:41 +00:00
script:
- yarn run test
needs: []
2020-06-09 19:54:52 +00:00
artifacts:
reports:
junit:
- ./junit.xml
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .yarn/
- node_modules/
Backend_Tests:
image: golang:latest
stage: test
script:
- cd apiGo
2021-09-20 17:06:50 +00:00
- go install github.com/jstemmer/go-junit-report@v0.9.1
- go test -v ./... 2>&1 | go-junit-report -set-exit-code > report.xml
needs: []
artifacts:
when: always
reports:
junit: ./apiGo/report.xml
2020-06-09 15:49:41 +00:00
lint:
stage: test
before_script:
- yarn install --cache-folder .yarn
script:
- yarn run lint
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .yarn/
- ./node_modules/
artifacts:
reports:
codequality: gl-codequality.json
needs: []
2020-11-12 09:32:46 +00:00
Debian_Server:
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/usr/bin/"
- cp -r ../build/* ./OpenMediaCenter/var/www/openmediacenter/
- cp ../apiGo/openmediacenter ./OpenMediaCenter/usr/bin/
- 'echo "Version: ${vers}" >> ./OpenMediaCenter/DEBIAN/control'
- chmod -R 0775 *
- dpkg-deb --build OpenMediaCenter
- mv OpenMediaCenter.deb OpenMediaCenter-${vers}_amd64.deb
artifacts:
expire_in: 7 days
paths:
- deb/OpenMediaCenter-*.deb
needs:
- Minimize_Frontend
- Build_Backend
Test_Server:
stage: deploy
2021-04-09 12:28:08 +00:00
image: luki42/ssh:latest
needs:
2020-12-18 19:19:32 +00:00
- Frontend_Tests
- Backend_Tests
2020-12-18 19:19:32 +00:00
- Debian_Server
only:
- master
script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | ssh-add -
- 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