Initial CI
Some checks failed
continuous-integration/drone Build is passing
continuous-integration/drone/tag Build is failing

This commit is contained in:
Aode (lion) 2021-12-22 10:40:33 -06:00
commit 7a1b4f8214
4 changed files with 199 additions and 0 deletions

146
.drone.yml Normal file
View file

@ -0,0 +1,146 @@
kind: pipeline
type: docker
name: publish-amd64
platform:
arch: amd64
steps:
- name: prepare
image: alpine:latest
commands:
- sed -i'' "s/PINAFORE_VERSION/$(echo "${DRONE_TAG}" | sed 's/^v//' | sed 's/-[[:alnum:]]\+$//')/g" Dockerfile
- name: push
image: plugins/docker:20
settings:
username: asonix
password:
from_secret: dockerhub_token
repo: asonix/pinafore
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: linux-amd64
build_args:
- REPO_ARCH=amd64
trigger:
event:
- tag
---
kind: pipeline
type: docker
name: publish-arm64v8
platform:
arch: amd64
steps:
- name: prepare
image: alpine:latest
commands:
- sed -i'' "s/PINAFORE_VERSION/$(echo "${DRONE_TAG}" | sed 's/^v//' | sed 's/-[[:alnum:]]\+$//')/g" Dockerfile
- name: push
image: plugins/docker:20
settings:
username: asonix
password:
from_secret: dockerhub_token
repo: asonix/pinafore
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: linux-arm64v8
build_args:
- REPO_ARCH=arm64v8
trigger:
event:
- tag
---
kind: pipeline
type: docker
name: publish-arm32v7
platform:
arch: amd64
steps:
- name: prepare
image: alpine:latest
commands:
- sed -i'' "s/PINAFORE_VERSION/$(echo "${DRONE_TAG}" | sed 's/^v//' | sed 's/-[[:alnum:]]\+$//')/g" Dockerfile
- name: push
image: plugins/docker:20
settings:
username: asonix
password:
from_secret: dockerhub_token
repo: asonix/pinafore
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: linux-arm32v7
build_args:
- REPO_ARCH=arm32v7
trigger:
event:
- tag
---
kind: pipeline
type: docker
name: manifest
platform:
arch: amd64
steps:
- name: manifest
image: plugins/manifest:1
settings:
username: asonix
password:
from_secret: dockerhub_token
dump: true
auto_tag: true
ignore_missing: true
spec: manifest.tmpl
depends_on:
- publish-amd64
- publish-arm64v8
- publish-arm32v7
trigger:
event:
- tag
---
kind: pipeline
type: docker
name: cron
steps:
- name: tag
image: asonix/release-checker:0.1
pull: always
environment:
GITEA_TOKEN:
from_secret: gitea_token
commands:
- /usr/local/bin/release-checker
trigger:
event:
- custom
- cron

9
Check.toml Normal file
View file

@ -0,0 +1,9 @@
[project]
kind = "github"
namespace = "nolanlawson"
repository = "pinafore"
[gitea]
domain = "git.asonix.dog"
owner = "asonix"
repo = "docker-pinafore"

25
Dockerfile Normal file
View file

@ -0,0 +1,25 @@
ARG REPO_ARCH
# Using Alpine to keep the images smaller
FROM $REPO_ARCH/node:alpine
# Pushing all files into image
WORKDIR /app
ADD https://github.com/nolanlawson/pinafore/archive/vPINAFORE_VERSION.tar.gz /app/pinafore.tar.gz
RUN tar zxf pinafore.tar.gz \
&& mv pinafore-PINAFORE_VERSION/* . \
&& rm -rf pinafore-PINAFORE_VERSION
# Install Pinafore
RUN yarn --production --pure-lockfile --network-timeout=30000 \
&& yarn build --network-timeout=30000 \
&& yarn cache clean \
&& rm -rf ./src ./docs ./tests ./bin
# Expose port 4002
EXPOSE 4002
# Setting run-command, using explicit `node` command
# rather than `yarn` or `npm` to use less memory
# https://github.com/nolanlawson/pinafore/issues/971
CMD PORT=4002 node server.js

19
manifest.tmpl Normal file
View file

@ -0,0 +1,19 @@
image: asonix/pinafore:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
manifests:
-
image: asonix/pinafore:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
platform:
architecture: amd64
os: linux
-
image: asonix/pinafore:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64v8
platform:
architecture: arm64
os: linux
variant: v8
-
image: asonix/pinafore:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm32v7
platform:
architecture: arm
os: linux
variant: v7