Add drone
This commit is contained in:
parent
e857889721
commit
f263dcd42f
368
.drone.yml
Normal file
368
.drone.yml
Normal file
|
@ -0,0 +1,368 @@
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: clippy
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: clippy
|
||||||
|
image: asonix/rust-builder:amd64-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- rustup component add clippy
|
||||||
|
- cargo clippy --no-default-features -- -D warnings
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tests
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: tests
|
||||||
|
image: asonix/rust-builder:amd64-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo test
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: check-amd64
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: check
|
||||||
|
image: asonix/rust-builder:amd64-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo check --target=$TARGET
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: build-amd64
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: asonix/rust-builder:amd64-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/release-checker
|
||||||
|
- cp target/$TARGET/release/release-checker .
|
||||||
|
- cp release-checker release-checker-linux-amd64
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/release-checker
|
||||||
|
dockerfile: docker/drone/Dockerfile
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: linux-amd64
|
||||||
|
build_args:
|
||||||
|
- REPO_ARCH=amd64
|
||||||
|
|
||||||
|
- name: publish
|
||||||
|
image: plugins/gitea-release:1
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: gitea_token
|
||||||
|
base_url: https://git.asonix.dog
|
||||||
|
files:
|
||||||
|
- release-checker-linux-amd64
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: check-arm64v8
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: check
|
||||||
|
image: asonix/rust-builder:arm64v8-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo check --target=$TARGET
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: build-arm64v8
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: asonix/rust-builder:arm64v8-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/release-checker
|
||||||
|
- cp target/$TARGET/release/release-checker .
|
||||||
|
- cp release-checker release-checker-linux-arm64v8
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/release-checker
|
||||||
|
dockerfile: docker/drone/Dockerfile
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: linux-arm64v8
|
||||||
|
build_args:
|
||||||
|
- REPO_ARCH=arm64v8
|
||||||
|
|
||||||
|
- name: publish
|
||||||
|
image: plugins/gitea-release:1
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: gitea_token
|
||||||
|
base_url: https://git.asonix.dog
|
||||||
|
files:
|
||||||
|
- release-checker-linux-arm64v8
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: check-arm32v7
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: check
|
||||||
|
image: asonix/rust-builder:arm32v7-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo check --target=$TARGET
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: build-arm32v7
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: asonix/rust-builder:arm32v7-latest
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/release-checker
|
||||||
|
- cp target/$TARGET/release/release-checker .
|
||||||
|
- cp release-checker release-checker-linux-arm32v7
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/release-checker
|
||||||
|
dockerfile: docker/drone/Dockerfile
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: linux-arm32v7
|
||||||
|
build_args:
|
||||||
|
- REPO_ARCH=arm32v7
|
||||||
|
|
||||||
|
- name: publish
|
||||||
|
image: plugins/gitea-release:1
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: gitea_token
|
||||||
|
base_url: https://git.asonix.dog
|
||||||
|
files:
|
||||||
|
- release-checker-linux-arm32v7
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: manifest
|
||||||
|
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git:latest
|
||||||
|
user: root
|
||||||
|
commands:
|
||||||
|
- git clone $DRONE_GIT_HTTP_URL .
|
||||||
|
- git checkout $DRONE_COMMIT
|
||||||
|
- chown -R 991:991 .
|
||||||
|
|
||||||
|
- name: manifest
|
||||||
|
image: plugins/manifest:1
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
dump: true
|
||||||
|
auto_tag: true
|
||||||
|
ignore_missing: true
|
||||||
|
spec: docker/drone/manifest.tmpl
|
||||||
|
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- build-amd64
|
||||||
|
- build-arm64v8
|
||||||
|
- build-arm32v7
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
15
docker/drone/Dockerfile
Normal file
15
docker/drone/Dockerfile
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
ARG REPO_ARCH
|
||||||
|
|
||||||
|
FROM asonix/rust-runner:$REPO_ARCH-latest
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN \
|
||||||
|
apk add git && \
|
||||||
|
chown -R app:app /mnt
|
||||||
|
|
||||||
|
COPY release-checker /usr/local/bin/release-checker
|
||||||
|
|
||||||
|
USER app
|
||||||
|
EXPOSE 8080
|
||||||
|
ENTRYPOINT ["/sbin/tini", "--"]
|
||||||
|
CMD ["/usr/local/bin/release-checker"]
|
25
docker/drone/manifest.tmpl
Normal file
25
docker/drone/manifest.tmpl
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
image: asonix/release-checker:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
|
||||||
|
{{#if build.tags}}
|
||||||
|
tags:
|
||||||
|
{{#each build.tags}}
|
||||||
|
- {{this}}
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
manifests:
|
||||||
|
-
|
||||||
|
image: asonix/release-checker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
|
||||||
|
platform:
|
||||||
|
architecture: amd64
|
||||||
|
os: linux
|
||||||
|
-
|
||||||
|
image: asonix/release-checker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64v8
|
||||||
|
platform:
|
||||||
|
architecture: arm64
|
||||||
|
os: linux
|
||||||
|
variant: v8
|
||||||
|
-
|
||||||
|
image: asonix/release-checker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm32v7
|
||||||
|
platform:
|
||||||
|
architecture: arm
|
||||||
|
os: linux
|
||||||
|
variant: v7
|
Loading…
Reference in a new issue