Initial CI
This commit is contained in:
commit
7a1b4f8214
146
.drone.yml
Normal file
146
.drone.yml
Normal 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
9
Check.toml
Normal 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
25
Dockerfile
Normal 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
19
manifest.tmpl
Normal 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
|
Loading…
Reference in a new issue