schnutibox/.drone.yml
Marvin Preuss f68037f057
All checks were successful
continuous-integration/drone/push Build is passing
ci: building on try until the autoscaler is fixed
2021-08-12 09:48:37 +02:00

136 lines
3.1 KiB
YAML

---
kind: pipeline
name: default
node:
runner: troy
steps:
- name: tags
image: alpine/git
commands:
- git fetch --tags
- name: lint
image: golangci/golangci-lint:v1.41.1
commands:
- make install-tools
- make lint
depends_on:
- tags
- name: test
image: golang:1.16
commands:
- make test
depends_on:
- tags
- name: create-image
image: docker:latest
volumes:
- name: dockersock
path: /var/run
- name: swap
path: /SWAP
commands:
- apk add --no-cache openssh-client curl
- mkdir ~/.ssh
- curl https://raw.githubusercontent.com/xsteadfastx/docker-qemu-alpine/main/ssh -o ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- wget -O /usr/local/bin/don https://git.xsfx.dev/attachments/8f8f4dbb-8254-448a-a549-552f8b96cb26
- chmod +x /usr/local/bin/don
- don -t 15m -r 15s -c "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 root@qemu-alpine"
- cat scripts/rpi-image-test/build.sh | ssh -i ssh -o StrictHostKeyChecking=no root@qemu-alpine
- ssh -i ssh -o StrictHostKeyChecking=no root@qemu-alpine poweroff
- ls -lah /SWAP
depends_on:
- test
- name: prepare-image
image: golang:1.16
volumes:
- name: dockersock
path: /var/run
commands:
- (cd /tmp; go install -v github.com/goreleaser/goreleaser@v0.169.0)
- make test-integration
depends_on:
- test
- create-image
- name: create-torrent
image: golang:1.16-alpine
volumes:
- name: swap
path: /SWAP
commands:
- apk add zip
- (cd /tmp; go get -v github.com/cenkalti/rain@v1.6.4)
- cd /SWAP
- zip 2021-05-07-raspios-buster-armhf-lite.zip 2021-05-07-raspios-buster-armhf-lite.img
- rain torrent create -o schnutibox.torrent -f 2021-05-07-raspios-buster-armhf-lite.zip
- ls -lah
depends_on:
- prepare-image
- name: build
image: goreleaser/goreleaser:v0.169.0
commands:
- make build
depends_on:
- test
- prepare-image
when:
event:
exclude:
- tag
- name: release
image: goreleaser/goreleaser:v0.169.0
volumes:
- name: dockersock
path: /var/run
environment:
GITHUB_TOKEN:
from_secret: github_token
DOCKER_USERNAME:
from_secret: docker_username
DOCKER_PASSWORD:
from_secret: github_token
DOCKER_REGISTRY: ghcr.io
commands:
- sleep 5
- >
echo $DOCKER_PASSWORD |
docker login $DOCKER_REGISTRY -u $DOCKER_USERNAME --password-stdin
- goreleaser release --rm-dist
depends_on:
- test
- lint
when:
event:
- tag
services:
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
- name: swap
path: /SWAP
- name: qemu-alpine
image: ghcr.io/xsteadfastx/qemu-alpine:latest
volumes:
- name: swap
path: /SWAP
volumes:
- name: dockersock
temp: {}
- name: swap
temp: {}