Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.21 KiB
image: registry.gitlab.tugraz.at/dbp/relay/dbp-relay-server-template/main:v2

before_script:
  - 'git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.tugraz.at/".insteadOf "git@gitlab.tugraz.at:"'
  - 'git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.tugraz.at/".insteadOf "https://gitlab.tugraz.at/"'

variables:
  COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/_composer_cache"

cache:
  key: ${CI_PROJECT_PATH}
  paths:
    - _composer_cache

stages:
  - test
  - deploy
  - e2e

.test_defaults: &test_defaults
  script:
    - sudo update-alternatives --set php "/usr/bin/${PHP}"
    - composer validate
    - composer install
    - composer test

test-php7.3:
  stage: test
  variables:
    PHP: "php7.3"
  <<: *test_defaults

test-php7.4:
  stage: test
  variables:
    PHP: "php7.4"
  <<: *test_defaults

test-php8.0:
  stage: test
  variables:
    PHP: "php8.0"
  <<: *test_defaults

linting:
  stage: test
  allow_failure: true
  script:
    - sudo update-alternatives --set php /usr/bin/php7.4
    - composer install
    - result=0
    - composer run cs || result=1
    - composer run phpstan || result=1
    - composer run psalm || result=1
    - exit $result

.deploy_defaults: &deploy_defaults
  needs: ["test-php7.3", "test-php7.4"]
  except:
    - schedules
  stage: deploy
  script:
    - sudo update-alternatives --set php /usr/bin/php7.3
    # Add ssh key
    - mkdir -p ~/.ssh
    - echo "${DEPLOY_KEY}" | tr -d '\r' > ~/.ssh/id_rsa
    - chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa
    - ssh-keyscan -t rsa "${DEPLOY_HOST}" >> ~/.ssh/known_hosts
    # Deploy
    - dep deploy --file ./.gitlab-ci/deploy.php "${CI_ENVIRONMENT_NAME}"