kind: pipeline
type: docker
name: amd64-pull

platform:
  os: linux
  arch: amd64

steps:
- name: build-and-test
  image: ubuntu:focal
  environment:
    COVERALLS_REPO_TOKEN:
      from_secret: coveralls_token
    APP_ID:
      from_secret: appid
    APP_INSTALLATION:
      from_secret: appins
    PK:
      from_secret: pk

  commands:
  - export DEBIAN_FRONTEND=noninteractive
  - export TRAVIS_BRANCH=$DRONE_BRANCH
  - export TRAVIS_JOB_ID=$DRONE_BUILD_NUMBER
  - export COVERALLS_PULL_REQUEST=$DRONE_PULL_REQUEST
  - apt-get -y update
  - apt-get -y install libasio-dev doxygen mkdocs graphviz zlib1g-dev gcc clang clang-format make cmake python3 python3-pip git openssl libssl-dev jq wget curl
  - git clone https://github.com/CrowCpp/cpp-coveralls.git
  - cd cpp-coveralls
  - pip3 install . --no-input
  - cd ..
  - export CC=/usr/bin/gcc
  - export CXX=/usr/bin/g++
  - mkdir build
  - cd build
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4
  - cd ..
  - coveralls --verbose --exclude-pattern .*/http_parser_merged.h --exclude-pattern .*/TinySHA1.hpp
  - git clone https://github.com/CrowCpp/crow-clang-format.git
  - cd crow-clang-format
  - chmod +x crow-clang-format.sh get-access-token.sh make-jwt.sh
  - ./crow-clang-format.sh
  - cd ..
  - export CC=/usr/bin/clang
  - export CXX=/usr/bin/clang++
  - mkdir build-clang
  - cd build-clang
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4

trigger:
  branch:
  - master
  event:
  - pull_request

---
kind: pipeline
type: docker
name: arm64-pull

platform:
  os: linux
  arch: arm64

steps:
- name: build-and-test
  image: ubuntu:focal
  commands:
  - export DEBIAN_FRONTEND=noninteractive
  - apt-get -y update
  - apt-get -y install libasio-dev zlib1g-dev gcc clang make cmake python3 openssl libssl-dev
  - mkdir build
  - cd build
  - cmake --version
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4
  - cd ..
  - export CC=/usr/bin/clang
  - export CXX=/usr/bin/clang++
  - mkdir build-clang
  - cd build-clang
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4

trigger:
  branch:
  - master
  event:
  - pull_request

---
kind: pipeline
type: docker
name: amd64-master

platform:
  os: linux
  arch: amd64

steps:
- name: build-and-test
  image: ubuntu:focal
  environment:
    COVERALLS_REPO_TOKEN:
      from_secret: coveralls_token
    GH_REPO_TOKEN:
      from_secret: repo_token
    GH_REPO_NAME: crow
    GH_REPO_REF: github.com/crowcpp/crow.git
    THEME_REPO_REF: github.com/crowcpp/darxygen.git

  commands:
  - export DRONE_BUILD_DIR=$PWD
  - export DEBIAN_FRONTEND=noninteractive
  - export DOXYFILE=$DRONE_BUILD_DIR/Doxyfile
  - export TRAVIS_BRANCH=$DRONE_REPO_BRANCH
  - export TRAVIS_JOB_ID=$DRONE_BUILD_NUMBER
  - apt-get -y update
  - apt-get -y install libasio-dev doxygen mkdocs graphviz zlib1g-dev gcc clang make cmake python3 python3-pip git openssl libssl-dev
  - pip3 install mkdocs-material mkdocs-redirects pyyaml mkdocs-meta-descriptions-plugin --no-input
  - git clone https://github.com/CrowCpp/cpp-coveralls.git
  - cd cpp-coveralls
  - pip3 install . --no-input
  - cd ..
  - export CC=/usr/bin/gcc
  - export CXX=/usr/bin/g++
  - mkdir build
  - cd build
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4
  - cd ..
  - coveralls --verbose --exclude-pattern .*/http_parser_merged.h --exclude-pattern .*/TinySHA1.hpp
  - export CC=/usr/bin/clang
  - export CXX=/usr/bin/clang++
  - mkdir build-clang
  - cd build-clang
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4
  - cd ..
  - chmod +x scripts/generateDocumentationAndDeploy.sh
  - ./scripts/generateDocumentationAndDeploy.sh

trigger:
  branch:
  - master
  event:
  - push

---
kind: pipeline
type: docker
name: arm64-master

platform:
  os: linux
  arch: arm64

steps:
- name: build-and-test
  image: ubuntu:focal
  commands:
  - export DEBIAN_FRONTEND=noninteractive
  - apt-get -y update
  - apt-get -y install libasio-dev zlib1g-dev gcc clang make cmake python3 openssl libssl-dev
  - mkdir build
  - cd build
  - cmake --version
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4
  - cd ..
  - export CC=/usr/bin/clang
  - export CXX=/usr/bin/clang++
  - mkdir build-clang
  - cd build-clang
  - cmake .. -DCROW_FEATURES="ssl;compression" -DCROW_AMALGAMATE=ON
  - make -j4
  - ctest -V -j4

trigger:
  branch:
  - master
  event:
  - push
