69 lines
1.6 KiB
YAML
69 lines
1.6 KiB
YAML
stages:
|
|
- build
|
|
- deploy
|
|
|
|
|
|
# Cache modules in between jobs
|
|
cache:
|
|
key: ${CI_COMMIT_REF_SLUG}
|
|
paths:
|
|
- node_modules/
|
|
|
|
|
|
# Electron app build
|
|
build:
|
|
stage: build
|
|
image: electronuserland/builder:wine
|
|
|
|
script:
|
|
# Install node dependencies
|
|
- npm install
|
|
# Create build directory
|
|
- mkdir -p "release-builds"
|
|
# Build electron app
|
|
- npm run build:app
|
|
- npm run release
|
|
|
|
artifacts:
|
|
name: "dist"
|
|
expire_in: 1 week
|
|
paths:
|
|
- "./release-builds/*.AppImage"
|
|
- "./release-builds/*.exe"
|
|
- "./release-builds/*.exe.blockmap"
|
|
- "./release-builds/latest*.yml"
|
|
- "./release-builds/beta*.yml"
|
|
|
|
only:
|
|
- merge_requests
|
|
- master
|
|
- web
|
|
- tags
|
|
|
|
|
|
# Deploy to builds.openflexure.org
|
|
deploy:
|
|
stage: deploy
|
|
dependencies:
|
|
- build
|
|
image: ubuntu:latest
|
|
|
|
before_script:
|
|
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
|
|
- eval $(ssh-agent -s)
|
|
- ssh-add <(echo "$SSH_PRIVATE_KEY_BATH_OPENFLEXURE_BASE64" | base64 --decode)
|
|
- mkdir -p ~/.ssh
|
|
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
|
|
|
|
script:
|
|
# Install rsync if not already installed
|
|
- 'which rsync || ( apt-get update -y && apt-get install rsync -y )'
|
|
|
|
# Upload the builds folder to openflexure-microscope builds
|
|
- rsync -hrvz -e ssh release-builds/ ci-user@openflexure.bath.ac.uk:/var/www/build/openflexure-ev/
|
|
|
|
# Run update-latest.py on the build server
|
|
- ssh -t ci-user@openflexure.bath.ac.uk "/var/www/build/update-latest.py"
|
|
|
|
only:
|
|
- tags
|