136 lines
3.1 KiB
YAML
136 lines
3.1 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.39.0
|
|
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: {}
|