めったにやらないのにメモらないから忘れる。今回こそメモる。
install
brew install drone-cli
local 実行
簡単. .drone.yml
があれば引数不要
cd repos/project
drone exec
secret
.drone.yml で from_secret しておく。
空でもいいのでenvが欲しい場合、commandsでexportするのがワタシ的には楽な最近(ES_PWのところ)
.drone.yml
---
kind: pipeline
type: docker
name: default
steps:
- name: Unit Tests
image: python:3.9
environment:
DB_URI:
from_secret: DB_URI
commands:
- pip install -r requirements.txt
- export ES_PW=
- make test
drone exec にわたす secret を作っておく
.drone.secret
DB_URI=mysql+pymysql://...
secretを指定して実行
drone exec --secret-file=.drone.secret
この option は ↓ に書いてあったけど、気づかないって・・
step指定
UnitTestsという名前のstepを実施。
$ drone exec --include "UnitTests"
- depends on してる場合、その前のstepも実行される。
あるあるerror
その1
$ drone exec
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker 起動しましょう
その2
$ drone exec
何も出ない
- docker pullに時間かかってます。imageでかくない?
- ymlがなんかおかしいみたいです。echoするだけの .drone.yml にして試してみましょう。
kind: pipeline
type: docker
name: default
steps:
- name: test
image: alpine
commands:
- echo hello
- echo world
その3
[clone:1] fatal: destination path '.' already exists and is not an empty directory.
clone : exit code 128
cloneが走ろうとしている。.drone.ymlの中をシンプルにして、cloneしてるstepを除外しよう。depends onも全部消そう。
その4
$ drone exec
proto: duplicate proto type registered: PluginSpec
proto: duplicate proto type registered: PluginPrivilege
No stage specified, assuming 'default'
Stage '' not found in build file : resource not found
pipelineの名前を指定するか、 default
にしましょう
---
kind: pipeline
type: docker
name: default <---
その5 : Rancher Desktop
docker daemonに繋がらない
$ sudo drone exec
2024/02/06 10:34:14 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Rancher Desktop > preferences > application > Administrative Access の check をつけたら動きました