---
kind: pipeline
type: docker
name: lint

steps:
  - name: Lint Dockerfile
    image: hadolint/hadolint:latest-debian
    pull: if-not-exists
    commands:
      - hadolint --version
      - hadolint Dockerfile

trigger:
  event:
    - pull_request
    - push
  ref:
    exclude:
      - refs/heads/renovate/*

---
kind: pipeline
type: docker
name: test

steps:
  - name: build test
    image: plugins/docker
    pull: if-not-exists
    settings:
      dockerfile: Dockerfile
      username:
        from_secret: dockerhub_username
      password:
        from_secret: dockerhub_password_ro
      repo: mwalbeck/janus-gateway
      dry_run: true

trigger:
  event:
    - pull_request

depends_on:
  - lint

---
kind: pipeline
type: docker
name: build and publish

steps:
  - name: determine tags
    image: mwalbeck/determine-docker-tags
    pull: if-not-exists
    environment:
      VERSION_TYPE: "docker_env"
      APP_NAME: "JANUS"
      DOCKERFILE_PATH: "Dockerfile"
      CUSTOM_TAGS: "latest"

  - name: build and publish
    image: plugins/docker
    pull: if-not-exists
    settings:
      dockerfile: Dockerfile
      username:
        from_secret: dockerhub_username
      password:
        from_secret: dockerhub_password
      repo: mwalbeck/janus-gateway

  - name: notify
    image: plugins/matrix
    pull: if-not-exists
    settings:
      homeserver: https://matrix.mwalbeck.org
      roomid:
        from_secret: matrix_roomid
      username:
        from_secret: matrix_username
      password:
        from_secret: matrix_password
    when:
      status:
        - success
        - failure

trigger:
  branch:
    - master
  event:
    - push

depends_on:
  - lint

---
kind: signature
hmac: 54d22411c934ad1889097ca060ab2406803dd8144e63b3b2ff3e0dd9eeb3784d

...