You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
schnutibox/.drone.yml

165 lines
3.6 KiB
YAML

---
kind: pipeline
name: default
node:
runner: hetzner
steps:
- name: tags
image: alpine/git
commands:
- git fetch --tags
- name: lint
image: golangci/golangci-lint:v1.42.0
commands:
- make install-tools
- make lint-go
- make lint-buf
depends_on:
- tags
- name: lint-js
image: alpine:3.14
commands:
- >
apk add
make
nodejs
npm
- >
npm install
eslint
prettier
eslint-plugin-prettier
eslint-config-prettier
- export PATH=$PWD/node_modules/.bin:$PATH
- make lint-js
- make clean
depends_on:
- tags
- name: test
image: golang:1.17
pull: always
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:
- lint
- lint-js
- test
- name: prepare-image
image: golang:1.17
volumes:
- name: dockersock
path: /var/run
commands:
- (cd /tmp; go install -v github.com/goreleaser/goreleaser@v0.169.0)
- make test-integration
depends_on:
- lint
- lint-js
- 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.176.0
commands:
- make build
depends_on:
- lint
- lint-js
- test
- prepare-image
when:
event:
exclude:
- tag
- name: release
image: goreleaser/goreleaser:v0.176.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
- lint-js
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: {}