---
kind: pipeline
name: build

platform:
  os: linux
  arch: amd64

concurrency:
  limit: 1

steps:
- name: generate
  image: thegeeklab/alpine-tools
  commands:
  - make doc

- name: markdownlint
  image: thegeeklab/markdownlint-cli
  commands:
  - markdownlint 'content/**/*.md' 'README.md'

- name: spellcheck
  image: node:lts-alpine
  commands:
  - npm install -g spellchecker-cli
  - spellchecker --files 'content/**/*.md' 'README.md' -d .dictionary -p spell indefinite-article syntax-urls frontmatter --frontmatter-keys title tags --no-suggestions
  environment:
    FORCE_COLOR: true
    NPM_CONFIG_LOGLEVEL: error

- name: testbuild
  image: klakegg/hugo:0.74.3-ext-alpine
  commands:
  - hugo-official -b http://localhost/

- name: link-validation
  image: thegeeklab/link-validator
  commands:
  - link-validator -ro
  environment:
    LINK_VALIDATOR_BASE_DIR: public/

- name: build
  image: klakegg/hugo:0.74.3-ext-alpine
  commands:
  - hugo-official

- name: beautify
  image: node:lts-alpine
  commands:
  - npm install -g js-beautify
  - html-beautify -r -f 'public/**/*.html'
  environment:
    FORCE_COLOR: true
    NPM_CONFIG_LOGLEVEL: error

- name: publish
  image: plugins/s3-sync
  settings:
    access_key:
      from_secret: s3_access_key
    bucket: thegeeklab-root
    delete: true
    endpoint: https://sp.rknet.org
    path_style: true
    secret_key:
      from_secret: s3_secret_access_key
    source: public/
    strip_prefix: public/

trigger:
  ref:
  - refs/heads/master
  - refs/tags/**

---
kind: pipeline
name: notifications

platform:
  os: linux
  arch: amd64

steps:
- name: matrix
  image: plugins/matrix
  settings:
    homeserver:
      from_secret: matrix_homeserver
    password:
      from_secret: matrix_password
    roomid:
      from_secret: matrix_roomid
    template: "Status: **{{ build.status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}<br/> Message: {{ build.message }}"
    username:
      from_secret: matrix_username

trigger:
  ref:
  - refs/heads/master
  - refs/tags/**
  status:
  - success
  - failure

depends_on:
- build

---
kind: signature
hmac: ccf04025bf1fdb04c2bafca6993b6a09309f7b37b450ceaf5ab801351a066b80

...
