adorsys/datasafe

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
# Using bash because Travis CI does not support Java on Windows
sudo: required
services:
  - docker

branches:
  except:
    - gh-pages
env:
  global:
    # This is a convenience variable for shortening download commands
    - GRAVIS="https://raw.githubusercontent.com/DanySK/Gravis-CI/master/"
    - JDK="graalvm@19.2.0"
    # DOCKERHUB_USER
    - secure: "VfQm2li2nQueRUtyVnV+BDaIjp27ydXltWsoYIZha0MdkItAnhdmQSvICKjD1PCr4kI17o1lPnUPhX1khBUWpQftPFCAcD1bbeAW0AHRVtF2fWL460R+o3C93jqlqKYczo7DWr4nKaMQ0HDZEGa1QcMuyeQA1S4CGdPmrkHk3N5PAflFF1myrCUSCzqV8+lp0w4CxCdScVYGYlQwahdLHrLNZbCo/Nxiex5XrOYrqLTaU98EoxmKlZaR4klg2/pJENgZ6NbZb8JfFaPkEYsmF5z4w2Cf5mp9PPJLnBuKLO/zhKTXpjz2hjhGpncEqFTHrxIpoY/jFrewB5t09a9lykpFHlXpvujZq1S7xNzOBTj9X6TnU4oyK1oteb6CW9A+hpyJVPPMQ2JrrkKzTaEQpel5q45unthStdvAVvl/BjrjVpzffbnaLXKomTzKjuW7VW3Q5mVIRD7UBVAn2izszaN2Lp05JKKxk+aYAsvywCL/bopI/nsugZz9mOhTFq7uf2Cvj6Ku6Hmzh/7fp/0no0tLr251a9nN7yoe2xbwL/524lnyQd2lHcwWfleCbwPFoZUtg+qBUXqf0EiRp6xj7fnl3kK/crXWcsWyrru33EgbRjuRzZVA2ShGVs9Yb8cKalXHouZ2deWwhxuk+Kb5BR8DM3PY9ThUZSU6tv4V0RY="
    # DOCKERHUB_PASS
    - secure: "wvFxLpbykOGuiuqqRUhsR/A9ErCSRO5GzRGxj/9wjehl6jQOQTAmN3Dtk3uO9cS/RfXjLpPZcJ4IVQ9QbEd/HCfJ46CzRfyMwCb8vP2N/wUiSqsun/0ev4lviOfI0j0vciKuB8VeWg5/ASfjznfehPcexOgOfbG61Apv7KS76SsfNLEiGFbszrq8tD1bVsdpT9CT+SiqpI1PCv1PIvQaC0CBkjCGNKbTGc1H4Hrd+OzVMP8qT/BkuSNxtvZABaRFht5+aF47X6M3PsqbOCHe1kiMkk5OHtQ0CRMJM/gP4xsQcR6bk5QTYmJZF7qD1tSXRzL8Yo3UbgBW3xz/eftDPCmbRRHBCPICjHle2w3jowgtOlkNtyeJJbz6yWSL1+ZOljuFHTiXIkXE+EAW/4CMroWH4EuzWo/2XeZCmkRmZe0dTxaMhrFLwXq0SJG/CaOP3mNSf04bNd/voga/zdD3jBMGPebEbwqoYvdXE/4sj6f0THznjvroT4AyrDvHkrBA78X3eeK/JPVyRtpbLsybVLoaxWha4rDgS4Dk5K/9uQqRJJruiSGZeBxLhA4yw+8M+KqIh7CV4gy1DZZspiZ5ST3AyY8K7OSMp7948awhy9xSJW7Hue7CoHBrDaJ59LEs4rE8JTU/HmcOLU+JA/J9hqOHEzFvyj4OFdb0h6gShoo="

### This section represents primary build actions
before_install:
  - curl -L https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz > oc-cli.tar.gz
  - tar -xzf oc-cli.tar.gz
  - sudo mv ./openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin

# preparations to build frontend
install:
  - nvm install 12.0
  - npm install -g @angular/cli
  - cd frontend/datasafe-ui && npm install && cd ../..

script:
  - mvn --settings .travis/settings.xml clean verify -B -V -DAWS_BUCKET=${AWS_BUCKET}
    # make frontend available for REST-docker
  - cd frontend/datasafe-ui && ng build --deploy-url /static/ --base-href /static/ && mv dist ../../datasafe-rest-impl/target/dist && cd ../..

deploy:
  - provider: script
    skip_cleanup: true
    script: /bin/bash .travis/deploy.sh
    on:
      tags: true
      condition: "$TRAVIS_TAG =~ ^v([[:digit:]]+\\.)+[[:digit:]]+(-[[:digit:]]+)?(-SNAPSHOT)?$"

#  - provider: script
#    skip_cleanup: true
#    script: /bin/bash .travis/deploy_develop_to_openshift.sh
#    on:
#      branch: develop

#  - provider: script
#    skip_cleanup: true
#    script: /bin/bash .travis/upload_dockerhub.sh
#    on:
#      all_branches: true
#      tags: true
#      condition: "$TRAVIS_TAG =~ ^v([[:digit:]]+\\.)+[[:digit:]]+(-[[:digit:]]+)?(-SNAPSHOT)?$"

after_success:
  - /bin/bash .travis/codecov_bash.sh

################ Custom build stages:
# Special test-skipping stage to build CLI, using maven-wrapper

build-cli: &build-cli
  script:
    # re-export JAVA_HOME
    - source  ~/.jdk_config
    # Prepare everything, no settings.xml needed
    - ./mvnw clean install -B -V -DskipTests
    # Change security providers of JDK
    - /bin/bash .travis/enable_bouncycastle_security.sh
    # Build native image, no settings.xml needed
    - ./mvnw -f datasafe-cli/pom.xml clean package -B -V -Pnative-image -DskipTests
    # Perform basic testing
    - echo 'Testing built CLI'
    - ./datasafe-cli/src/test/bash/basic_functionality_test_fs.sh datasafe-cli/target/datasafe-cli
    # Docker not available on MacOS, allow to pass
    - ./datasafe-cli/src/test/bash/basic_functionality_test_minio.sh datasafe-cli/target/datasafe-cli

# CLI artifacts publishing:
deploy-cli: &deploy-cli
  deploy:
    on:
      branch: develop
    provider: s3
    access_key_id: ${AWS_ACCESS_KEY_ID}
    secret_access_key: ${AWS_SECRET_ACCESS_KEY}
    bucket: ${AWS_BUCKET}
    region: ${AWS_REGION}
    skip_cleanup: true
    local_dir: datasafe-cli/target
    upload-dir: datasafe-cli/${TRAVIS_OS_NAME}/${TRAVIS_COMMIT}

################ Build matrix:
# Build configuration definition:
matrix:
  include:

    #### PRIMARY BUILD ####
    # This is original build and deploy script, that runs E2E tests and deploys docker images
    - os: linux
      language: java
      jdk: openjdk8


    #### CLI-ORIENTED BUILD ####
    # These are CLI-only builds that produce Datasafe cli executable for each OS:

    ### CLI for Linux:
    - os: linux
      language: bash
      before_install:
        - source .travis/drop_deploy_secrets.sh
        - /bin/bash .travis/install_custom_jdk_and_add_security_providers.sh
      install:
        - echo 'Nothing to do' # Override primary build logic
      <<: *build-cli
      <<: *deploy-cli
      after_success:
        - echo 'Nothing to do' # Override primary build logic

    ### CLI for MacOS:
    - os: osx
      language: bash
      before_install:
        - source .travis/drop_deploy_secrets.sh
        - /bin/bash .travis/install_custom_jdk_and_add_security_providers.sh
      install:
        - echo 'Nothing to do' # Override primary build logic
      <<: *build-cli
      <<: *deploy-cli
      after_success:
        - echo 'Nothing to do' # Override primary build logic

    # No WINDOWS here because it is in beta status yet.

cache:
  directories:
  - $HOME/.m2