# This file is a template, and might need editing before it works on your project.
# Official framework image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/node/tags/
image: node:16

stages:
  - check-changelog
  - lint
  - build
  - test
  - deploy

# https://git.pleroma.social/help/ci/yaml/workflow.md#switch-between-branch-pipelines-and-merge-request-pipelines
workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH

check-changelog:
  stage: check-changelog
  image: alpine
  rules:
    - if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma-fe' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^renovate/
      when: never
    - if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma-fe' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'weblate'
      when: never
    - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"
  before_script: ''
  after_script: ''
  cache: {}
  script:
    - apk add git
    - sh ./tools/check-changelog

lint:
  stage: lint
  script:
    - yarn
    - npm run lint
    - npm run stylelint

test:
  stage: test
  variables:
    APT_CACHE_DIR: apt-cache
  script:
    - mkdir -pv $APT_CACHE_DIR && apt-get -qq update
    - apt install firefox-esr -y --no-install-recommends
    - firefox --version
    - yarn
    - yarn unit

build:
  stage: build
  script:
    - yarn
    - npm run build
  artifacts:
    paths:
    - dist/

docs-deploy:
  stage: deploy
  image: alpine:latest
  only:
  - develop@pleroma/pleroma-fe
  before_script:
  - apk add curl
  script:
  - curl -X POST -F"token=$DOCS_PIPELINE_TRIGGER" -F'ref=master' https://git.pleroma.social/api/v4/projects/673/trigger/pipeline