index : static-web-server.git

ascending towards madness

---
kind: pipeline
type: docker
name: development

platform:
  os: linux
  arch: amd64

steps:
- name: restore-cache
  image: drillster/drone-volume-cache
  volumes:
    - name: cache
      path: /cache
  settings:
    restore: true
    mount:
      - ./target

- name: test
  image: joseluisq/rust-linux-darwin-builder:1.42.0
  commands:
    - make test

- name: rebuild-cache
  image: drillster/drone-volume-cache
  volumes:
    - name: cache
      path: /cache
  settings:
    rebuild: true
    mount:
      - ./target

volumes:
  - name: cache
    host:
      path: /tmp/cache

trigger:
  event:
    - push
    - pull_request
  branch:
    - master
    - develop
    - feature/*
    - bugfix/*
    - hotfix/*


---
kind: pipeline
type: docker
name: production

platform:
  os: linux
  arch: amd64

steps:
- name: test
  image: joseluisq/rust-linux-darwin-builder:1.42.0
  commands:
    - make test
  when:
    event:
    - tag

- name: release
  image: joseluisq/rust-linux-darwin-builder:1.42.0
  commands:
    - make prod.release
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

- name: publish-scratch
  image: plugins/docker
  settings:
    registry: registry.joseluisq.net
    repo: registry.joseluisq.net/static-web-server
    dockerfile: ./docker/scratch/Dockerfile
    username:
      from_secret: registry_username
    password:
      from_secret: registry_password
    auto_tag: true
    build_args:
      - DOCKER_IMAGE_VERSION=${DRONE_TAG}
    tags:
      - latest
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

- name: publish-alpine
  image: plugins/docker
  settings:
    registry: registry.joseluisq.net
    repo: registry.joseluisq.net/static-web-server
    dockerfile: ./docker/alpine/Dockerfile
    username:
      from_secret: registry_username
    password:
      from_secret: registry_password
    auto_tag: true
    auto_tag_suffix: alpine
    build_args:
      - DOCKER_IMAGE_VERSION=${DRONE_TAG}-alpine
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

- name: gitea-release
  image: plugins/gitea-release
  settings:
    api_key:
      from_secret: gitea_token
    base_url: https://git.joseluisq.net/
    files:
      - ./bin/*.tar.gz
      - ./bin/*-SHA256SUM
    prerelease: true
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

- name: publish-public-scratch
  image: plugins/docker
  settings:
    repo: joseluisq/static-web-server
    dockerfile: ./docker/scratch/Dockerfile
    username:
      from_secret: dockerhub_username
    password:
      from_secret: dockerhub_password
    auto_tag: true
    tags:
      - latest
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

- name: publish-public-alpine
  image: plugins/docker
  settings:
    repo: joseluisq/static-web-server
    dockerfile: ./docker/alpine/Dockerfile
    username:
      from_secret: dockerhub_username
    password:
      from_secret: dockerhub_password
    auto_tag: true
    auto_tag_suffix: alpine
  when:
    ref:
    - refs/tags/v*
    exclude:
    - refs/tags/**rc**
    - refs/tags/**beta**
    - refs/tags/latest

trigger:
  event:
  - tag

---
kind: pipeline
type: docker
name: notification

platform:
  os: linux
  arch: amd64

steps:
- name: notify
  image: plugins/slack
  settings:
    webhook:
      from_secret: slack_webhook
    channel: ci-cd

depends_on:
- development
- production

trigger:
  status:
  - success
  - failure