101 lines
2.0 KiB
YAML
101 lines
2.0 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: cannery
|
|
|
|
steps:
|
|
- name: restore-cache
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
settings:
|
|
restore: true
|
|
mount:
|
|
- _build
|
|
- deps
|
|
- .npm
|
|
- .mix
|
|
|
|
- name: test
|
|
image: elixir:1.14.1-alpine
|
|
environment:
|
|
TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
|
|
HOST: testing.example.tld
|
|
MIX_HOME: /drone/src/.mix
|
|
MIX_ARCHIVES: /drone/src/.mix/archives
|
|
MIX_ENV: test
|
|
commands:
|
|
- apk add --no-cache build-base npm git
|
|
- mix local.rebar --force --if-missing
|
|
- mix local.hex --force --if-missing
|
|
- mix deps.get
|
|
- npm set cache .npm
|
|
- npm --prefix ./assets ci --no-audit --prefer-offline
|
|
- npm run --prefix ./assets deploy
|
|
- mix do phx.digest, gettext.extract
|
|
- mix test.all
|
|
|
|
- name: build and publish stable
|
|
image: thegeeklab/drone-docker-buildx
|
|
privileged: true
|
|
settings:
|
|
repo: shibaobun/cannery
|
|
purge: true
|
|
compress: true
|
|
platforms: linux/amd64,linux/arm/v7
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
tags: latest
|
|
when:
|
|
branch:
|
|
- stable
|
|
|
|
- name: build and publish tagged version
|
|
image: thegeeklab/drone-docker-buildx
|
|
privileged: true
|
|
settings:
|
|
repo: shibaobun/cannery
|
|
purge: true
|
|
compress: true
|
|
platforms: linux/amd64,linux/arm/v7
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
tags:
|
|
- ${DRONE_TAG}
|
|
when:
|
|
event:
|
|
- tag
|
|
|
|
- name: rebuild-cache
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
settings:
|
|
rebuild: true
|
|
mount:
|
|
- _build
|
|
- deps
|
|
- .npm
|
|
- .mix
|
|
|
|
services:
|
|
- name: database
|
|
image: postgres:13
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
|
|
volumes:
|
|
- name: cache
|
|
host:
|
|
path: /run/media/default/ssdsrv/gitea/drone-cache
|
|
- name: docker_sock
|
|
host:
|
|
path: /var/run/docker.sock
|