Compare commits
2 commits
3926713d6c
...
0f04b749fa
Author | SHA1 | Date | |
---|---|---|---|
|
0f04b749fa | ||
|
02ed9fcccc |
458
.drone.yml
Normal file
458
.drone.yml
Normal file
|
@ -0,0 +1,458 @@
|
||||||
|
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:latest-linux-amd64
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- rustup component add clippy
|
||||||
|
- cargo clippy --no-default-features -- -D warnings
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
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:latest-linux-amd64
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- cargo test
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
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:latest-linux-amd64
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- 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:latest-linux-amd64
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/doglinks
|
||||||
|
- cp target/$TARGET/release/doglinks .
|
||||||
|
- cp doglinks ../doglinks-linux-amd64
|
||||||
|
|
||||||
|
- name: build-elm
|
||||||
|
image: nixos/nix
|
||||||
|
user: root
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- nix-channel --update
|
||||||
|
- cd client
|
||||||
|
- nix-shell -p elmPackages.elm -p elmPackages.elm-optimize-level-2 --run 'elm-optimize-level-2 --output ../server/static/main.js src/Main.elm'
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/doglinks
|
||||||
|
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:
|
||||||
|
- doglinks-linux-amd64
|
||||||
|
- main.js
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- clippy
|
||||||
|
- tests
|
||||||
|
|
||||||
|
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:latest-linux-arm64v8
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- 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:latest-linux-arm64v8
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/doglinks
|
||||||
|
- cp target/$TARGET/release/doglinks .
|
||||||
|
- cp doglinks ../doglinks-linux-arm64v8
|
||||||
|
|
||||||
|
- name: build-elm
|
||||||
|
image: nixos/nix
|
||||||
|
user: root
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- nix-channel --update
|
||||||
|
- cd client
|
||||||
|
- nix-shell -p elmPackages.elm -p elmPackages.elm-optimize-level-2 --run 'elm-optimize-level-2 --output ../server/static/main.js src/Main.elm'
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/doglinks
|
||||||
|
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:
|
||||||
|
- doglinks-linux-arm64v8
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- clippy
|
||||||
|
- tests
|
||||||
|
|
||||||
|
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:latest-linux-arm32v7
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- 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:latest-linux-arm32v7
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- cd server
|
||||||
|
- cargo build --target=$TARGET --release
|
||||||
|
- $TOOL-strip target/$TARGET/release/doglinks
|
||||||
|
- cp target/$TARGET/release/doglinks .
|
||||||
|
- cp doglinks ../doglinks-linux-arm32v7
|
||||||
|
|
||||||
|
- name: build-elm
|
||||||
|
image: nixos/nix
|
||||||
|
user: root
|
||||||
|
pull: always
|
||||||
|
commands:
|
||||||
|
- nix-channel --update
|
||||||
|
- cd client
|
||||||
|
- nix-shell -p elmPackages.elm -p elmPackages.elm-optimize-level-2 --run 'elm-optimize-level-2 --output ../server/static/main.js src/Main.elm'
|
||||||
|
|
||||||
|
- name: push
|
||||||
|
image: plugins/docker:20
|
||||||
|
settings:
|
||||||
|
username: asonix
|
||||||
|
password:
|
||||||
|
from_secret: dockerhub_token
|
||||||
|
repo: asonix/doglinks
|
||||||
|
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:
|
||||||
|
- doglinks-linux-arm32v7
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- clippy
|
||||||
|
- tests
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# ---
|
||||||
|
#
|
||||||
|
# kind: pipeline
|
||||||
|
# type: docker
|
||||||
|
# name: publish-crate
|
||||||
|
#
|
||||||
|
# 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: publish
|
||||||
|
# image: asonix/rust-builder:latest-linux-amd64
|
||||||
|
# pull: always
|
||||||
|
# environment:
|
||||||
|
# CRATES_IO_TOKEN:
|
||||||
|
# from_secret: crates_io_token
|
||||||
|
# commands:
|
||||||
|
# - cd server
|
||||||
|
# - cargo publish --token $CRATES_IO_TOKEN
|
||||||
|
#
|
||||||
|
# depends_on:
|
||||||
|
# - build-amd64
|
||||||
|
# - build-arm64v8
|
||||||
|
# - build-arm32v7
|
||||||
|
#
|
||||||
|
# trigger:
|
||||||
|
# event:
|
||||||
|
# - tag
|
13
docker/drone/Dockerfile
Normal file
13
docker/drone/Dockerfile
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
ARG REPO_ARCH
|
||||||
|
|
||||||
|
FROM asonix/rust-runner:latest-linux-$REPO_ARCH
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
mkdir /opt/app/static
|
||||||
|
|
||||||
|
COPY doglinks /usr/local/bin/doglinks
|
||||||
|
COPY main.js /opt/app/static
|
||||||
|
|
||||||
|
EXPOSE 8078
|
||||||
|
ENTRYPOINT ["/sbin/tini", "--"]
|
||||||
|
CMD ["/usr/local/bin/doglinks"]
|
25
docker/drone/manifest.tmpl
Normal file
25
docker/drone/manifest.tmpl
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
image: asonix/pictrs-proxy:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
|
||||||
|
{{#if build.tags}}
|
||||||
|
tags:
|
||||||
|
{{#each build.tags}}
|
||||||
|
- {{this}}
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
manifests:
|
||||||
|
-
|
||||||
|
image: asonix/pictrs-proxy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
|
||||||
|
platform:
|
||||||
|
architecture: amd64
|
||||||
|
os: linux
|
||||||
|
-
|
||||||
|
image: asonix/pictrs-proxy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64v8
|
||||||
|
platform:
|
||||||
|
architecture: arm64
|
||||||
|
os: linux
|
||||||
|
variant: v8
|
||||||
|
-
|
||||||
|
image: asonix/pictrs-proxy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm32v7
|
||||||
|
platform:
|
||||||
|
architecture: arm
|
||||||
|
os: linux
|
||||||
|
variant: v7
|
Loading…
Reference in a new issue