Commit b72a652b authored by Joel Collins's avatar Joel Collins
Browse files

Update .gitlab-ci.yml to new build deployment system

parent 563fe0f6
Loading
Loading
Loading
Loading
+25 −52
Original line number Diff line number Diff line
stages:
  - build
  - meta
  - deploy

# Cache modules in between jobs
cache:
@@ -8,71 +8,44 @@ cache:
  paths:
  - node_modules/

# Basic webapp build
build:
  stage: build
  image: electronuserland/builder:wine
  script:
    - npm install
    - npm run build:web
  artifacts:
    name: "build"
    paths:
      - dist/
  only:
    - stable
    - tags
    - web


# Electron app build
package:
build:
  stage: build
  image: electronuserland/builder:wine
  script:
    - npm install
    - npm run build:app
    - npm run release
    - shopt -s extglob
    - mv ./release-builds/*.AppImage .
    - mv ./release-builds/*.deb .
    - mv ./release-builds/*.exe .
    - mv ./release-builds/*.exe.blockmap .
    - mv ./release-builds/?(beta*.yml|latest*.yml) .
  artifacts:
    name: "dist"
    expire_in: 1 hour
    paths:
      - "*.AppImage"
      - "*.deb"
      - "*.exe"
      - "*.exe.blockmap"
      - "latest*.yml"
      - "beta*.yml"
      - "./release-builds/*.AppImage"
      - "./release-builds/*.exe"
      - "./release-builds/*.exe.blockmap"
      - "./release-builds/latest*.yml"
      - "./release-builds/beta*.yml"
  only:
    - web
    - stable
    - tags
    - web

# Create a nupkg file for Choco package manager
meta:choco:
  stage: meta
# Deploy to builds.openflexure.org
deploy:
  stage: deploy
  dependencies:
    - package
  image: patrickhuber/choco-linux
    - 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_BASE64" | base64 --decode)
    - mkdir -p ~/.ssh
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
  script:
    - chmod +x ./app/make-nupkg.sh
    - ./app/make-nupkg.sh
    - cd ./release-builds/choco
    - choco pack
    - cd ../../
    - mv ./release-builds/choco/openflexure-ev.nuspec .
    - mv ./release-builds/choco/*.nupkg .
    - mv ./release-builds/choco/tools .
  artifacts:
    name: "openflexure-ev-choco-nupkg"
    paths:
      - ./openflexure-ev.nuspec
      - tools/chocolateyInstall.ps1
      - ./*.nupkg
    - 'which rsync || ( apt-get update -y && apt-get install rsync -y )'
    - rsync -hrvz -e ssh release-builds/ ci-user@openflexure.bath.ac.uk:/var/www/build/openflexure-ev/
    - ssh -t ci-user@openflexure.bath.ac.uk "/var/www/build/update-latest.py"
  only:
    - tags
    - web
    - stable