kind: pipeline
name: main-pipeline
platform:
  os: linux
  arch: amd64
steps:
- name: build-ui
  image: node:16.13-slim
  volumes:
  - name: dist
    path: dist/
  commands:
  - apt-get update
  - apt-get -y install libssl-dev
  - npm install
  - npm run build
    
- name: test
  image: rust
  commands:
  - cargo test
- name: build
  image: rust
  volumes:
  - name: temp
    path: /app
  - name: dist
    path: dist/
  commands:
  - cargo build --release
  - cp target/release/vade /app/vade
  when:
    event:
      - promote
- name: stage-deploy  
  image: plugins/docker
  privileged: true
  volumes:
  - name: temp
    path: /app
  settings:
    username:
      from_secret: CONTAINER_USER
    password:
      from_secret: CONTAINER_PASSWORD
    registry: git.5sigma.io
    context: /app
    repo: git.5sigma.io/vade/app
    tags: latest
  when:
    event:
      - promote
    target:
      - staging
      - production
volumes:
- name: temp
  temp: {}
- name: dist
  temp: {}
