diff --git a/.drone.jsonnet b/.drone.jsonnet
deleted file mode 100644
index a665cb8..0000000
--- a/.drone.jsonnet
+++ /dev/null
@@ -1,195 +0,0 @@
-local PipelineTest = {
- kind: 'pipeline',
- name: 'test',
- platform: {
- os: 'linux',
- arch: 'amd64',
- },
- steps: [
- {
- name: 'markdownlint',
- image: 'thegeeklab/markdownlint-cli',
- commands: [
- "markdownlint 'README.md'",
- ],
- },
- ],
- trigger: {
- ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
- },
-};
-
-local PipelineBuildContainer(arch='amd64') = {
- kind: 'pipeline',
- name: 'build-container-' + std.split(arch, '_')[0],
- platform: {
- os: 'linux',
- arch: 'amd64',
- },
- steps: [
- {
- name: 'tags',
- image: 'thegeeklab/docker-autotag',
- environment: {
- DOCKER_AUTOTAG_FORCE_LATEST: 'True',
- DOCKER_AUTOTAG_IGNORE_PRERELEASE: 'True',
- DOCKER_AUTOTAG_OUTPUT_FILE: '.tags',
- DOCKER_AUTOTAG_VERSION: '${DRONE_TAG}',
- DOCKER_AUTOTAG_SUFFIX: std.split(arch, '_')[0],
- },
- },
- {
- name: 'dryrun',
- image: 'thegeeklab/drone-docker-buildx:20',
- settings: {
- dry_run: true,
- dockerfile: 'Dockerfile.' + std.split(arch, '_')[0],
- platforms: [
- 'linux/' + std.strReplace(arch, '_', '/'),
- ],
- repo: 'thegeeklab/${DRONE_REPO_NAME}',
- },
- depends_on: ['tags'],
- when: {
- ref: ['refs/pull/**'],
- },
- },
- {
- name: 'publish-dockerhub',
- image: 'thegeeklab/drone-docker-buildx:20',
- settings: {
- dockerfile: 'Dockerfile.' + std.split(arch, '_')[0],
- repo: 'thegeeklab/${DRONE_REPO_NAME}',
- username: { from_secret: 'docker_username' },
- password: { from_secret: 'docker_password' },
- },
- when: {
- ref: ['refs/heads/main', 'refs/tags/**'],
- },
- depends_on: ['tags'],
- },
- {
- name: 'publish-quay',
- image: 'thegeeklab/drone-docker-buildx:20',
- settings: {
- dockerfile: 'Dockerfile.' + std.split(arch, '_')[0],
- registry: 'quay.io',
- repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}',
- username: { from_secret: 'quay_username' },
- password: { from_secret: 'quay_password' },
- },
- when: {
- ref: ['refs/heads/main', 'refs/tags/**'],
- },
- depends_on: ['tags'],
- },
- ],
- depends_on: [
- 'test',
- ],
- trigger: {
- ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
- },
-};
-
-local PipelineNotifications = {
- kind: 'pipeline',
- name: 'notifications',
- platform: {
- os: 'linux',
- arch: 'amd64',
- },
- steps: [
- {
- image: 'plugins/manifest',
- name: 'manifest-dockerhub',
- settings: {
- ignore_missing: true,
- username: { from_secret: 'docker_username' },
- password: { from_secret: 'docker_password' },
- spec: 'manifest.tmpl',
- },
- when: {
- status: ['success'],
- },
- },
- {
- image: 'plugins/manifest',
- name: 'manifest-quay',
- settings: {
- ignore_missing: true,
- username: { from_secret: 'quay_username' },
- password: { from_secret: 'quay_password' },
- spec: 'manifest-quay.tmpl',
- },
- when: {
- status: ['success'],
- },
- },
- {
- name: 'pushrm-dockerhub',
- pull: 'always',
- image: 'chko/docker-pushrm:1',
- environment: {
- DOCKER_PASS: {
- from_secret: 'docker_password',
- },
- DOCKER_USER: {
- from_secret: 'docker_username',
- },
- PUSHRM_FILE: 'README.md',
- PUSHRM_SHORT: 'Custom Alpine image including a common toolset',
- PUSHRM_TARGET: 'thegeeklab/${DRONE_REPO_NAME}',
- },
- when: {
- status: ['success'],
- },
- },
- {
- name: 'pushrm-quay',
- pull: 'always',
- image: 'chko/docker-pushrm:1',
- environment: {
- APIKEY__QUAY_IO: {
- from_secret: 'quay_token',
- },
- PUSHRM_FILE: 'README.md',
- PUSHRM_TARGET: 'quay.io/thegeeklab/${DRONE_REPO_NAME}',
- },
- when: {
- status: ['success'],
- },
- },
- {
- name: 'matrix',
- image: 'thegeeklab/drone-matrix',
- settings: {
- homeserver: { from_secret: 'matrix_homeserver' },
- roomid: { from_secret: 'matrix_roomid' },
- template: 'Status: **{{ build.Status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}
Message: {{ commit.Message.Title }}',
- username: { from_secret: 'matrix_username' },
- password: { from_secret: 'matrix_password' },
- },
- when: {
- status: ['success', 'failure'],
- },
- },
- ],
- depends_on: [
- 'build-container-amd64',
- 'build-container-arm64',
- 'build-container-arm',
- ],
- trigger: {
- ref: ['refs/heads/main', 'refs/tags/**'],
- status: ['success', 'failure'],
- },
-};
-
-[
- PipelineTest,
- PipelineBuildContainer(arch='amd64'),
- PipelineBuildContainer(arch='arm64_v8'),
- PipelineBuildContainer(arch='arm_v7'),
- PipelineNotifications,
-]
diff --git a/.drone.yml b/.drone.yml
index b4e3156..5305401 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -20,7 +20,7 @@ trigger:
---
kind: pipeline
-name: build-container-amd64
+name: build-container
platform:
os: linux
@@ -33,164 +33,19 @@ steps:
DOCKER_AUTOTAG_FORCE_LATEST: True
DOCKER_AUTOTAG_IGNORE_PRERELEASE: True
DOCKER_AUTOTAG_OUTPUT_FILE: .tags
- DOCKER_AUTOTAG_SUFFIX: amd64
DOCKER_AUTOTAG_VERSION: ${DRONE_TAG}
- name: dryrun
image: thegeeklab/drone-docker-buildx:20
settings:
- dockerfile: Dockerfile.amd64
+ dockerfile: Dockerfile.multiarch
dry_run: true
platforms:
- linux/amd64
- repo: thegeeklab/${DRONE_REPO_NAME}
- when:
- ref:
- - refs/pull/**
- depends_on:
- - tags
-
- - name: publish-dockerhub
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.amd64
- password:
- from_secret: docker_password
- repo: thegeeklab/${DRONE_REPO_NAME}
- username:
- from_secret: docker_username
- when:
- ref:
- - refs/heads/main
- - refs/tags/**
- depends_on:
- - tags
-
- - name: publish-quay
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.amd64
- password:
- from_secret: quay_password
- registry: quay.io
- repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
- username:
- from_secret: quay_username
- when:
- ref:
- - refs/heads/main
- - refs/tags/**
- depends_on:
- - tags
-
-trigger:
- ref:
- - refs/heads/main
- - refs/tags/**
- - refs/pull/**
-
-depends_on:
- - test
-
----
-kind: pipeline
-name: build-container-arm64
-
-platform:
- os: linux
- arch: amd64
-
-steps:
- - name: tags
- image: thegeeklab/docker-autotag
- environment:
- DOCKER_AUTOTAG_FORCE_LATEST: True
- DOCKER_AUTOTAG_IGNORE_PRERELEASE: True
- DOCKER_AUTOTAG_OUTPUT_FILE: .tags
- DOCKER_AUTOTAG_SUFFIX: arm64
- DOCKER_AUTOTAG_VERSION: ${DRONE_TAG}
-
- - name: dryrun
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.arm64
- dry_run: true
- platforms:
- - linux/arm64/v8
- repo: thegeeklab/${DRONE_REPO_NAME}
- when:
- ref:
- - refs/pull/**
- depends_on:
- - tags
-
- - name: publish-dockerhub
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.arm64
- password:
- from_secret: docker_password
- repo: thegeeklab/${DRONE_REPO_NAME}
- username:
- from_secret: docker_username
- when:
- ref:
- - refs/heads/main
- - refs/tags/**
- depends_on:
- - tags
-
- - name: publish-quay
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.arm64
- password:
- from_secret: quay_password
- registry: quay.io
- repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
- username:
- from_secret: quay_username
- when:
- ref:
- - refs/heads/main
- - refs/tags/**
- depends_on:
- - tags
-
-trigger:
- ref:
- - refs/heads/main
- - refs/tags/**
- - refs/pull/**
-
-depends_on:
- - test
-
----
-kind: pipeline
-name: build-container-arm
-
-platform:
- os: linux
- arch: amd64
-
-steps:
- - name: tags
- image: thegeeklab/docker-autotag
- environment:
- DOCKER_AUTOTAG_FORCE_LATEST: True
- DOCKER_AUTOTAG_IGNORE_PRERELEASE: True
- DOCKER_AUTOTAG_OUTPUT_FILE: .tags
- DOCKER_AUTOTAG_SUFFIX: arm
- DOCKER_AUTOTAG_VERSION: ${DRONE_TAG}
-
- - name: dryrun
- image: thegeeklab/drone-docker-buildx:20
- settings:
- dockerfile: Dockerfile.arm
- dry_run: true
- platforms:
+ - linux/arm64
- linux/arm/v7
+ - linux/arm/v6
+ provenance: false
repo: thegeeklab/${DRONE_REPO_NAME}
when:
ref:
@@ -201,9 +56,15 @@ steps:
- name: publish-dockerhub
image: thegeeklab/drone-docker-buildx:20
settings:
- dockerfile: Dockerfile.arm
+ dockerfile: Dockerfile.multiarch
password:
from_secret: docker_password
+ platforms:
+ - linux/amd64
+ - linux/arm64
+ - linux/arm/v7
+ - linux/arm/v6
+ provenance: false
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
@@ -212,14 +73,20 @@ steps:
- refs/heads/main
- refs/tags/**
depends_on:
- - tags
+ - dryrun
- name: publish-quay
image: thegeeklab/drone-docker-buildx:20
settings:
- dockerfile: Dockerfile.arm
+ dockerfile: Dockerfile.multiarch
password:
from_secret: quay_password
+ platforms:
+ - linux/amd64
+ - linux/arm64
+ - linux/arm/v7
+ - linux/arm/v6
+ provenance: false
registry: quay.io
repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
username:
@@ -229,7 +96,7 @@ steps:
- refs/heads/main
- refs/tags/**
depends_on:
- - tags
+ - dryrun
trigger:
ref:
@@ -249,34 +116,7 @@ platform:
arch: amd64
steps:
- - name: manifest-dockerhub
- image: plugins/manifest
- settings:
- ignore_missing: true
- password:
- from_secret: docker_password
- spec: manifest.tmpl
- username:
- from_secret: docker_username
- when:
- status:
- - success
-
- - name: manifest-quay
- image: plugins/manifest
- settings:
- ignore_missing: true
- password:
- from_secret: quay_password
- spec: manifest-quay.tmpl
- username:
- from_secret: quay_username
- when:
- status:
- - success
-
- name: pushrm-dockerhub
- pull: always
image: chko/docker-pushrm:1
environment:
DOCKER_PASS:
@@ -291,7 +131,6 @@ steps:
- success
- name: pushrm-quay
- pull: always
image: chko/docker-pushrm:1
environment:
APIKEY__QUAY_IO:
@@ -328,12 +167,10 @@ trigger:
- failure
depends_on:
- - build-container-amd64
- - build-container-arm64
- - build-container-arm
+ - build-container
---
kind: signature
-hmac: d1a3479b9d0af5764dc58fa592e576b7936952f74ad7df10bf56034dfd07b4e8
+hmac: 41c358f249f44673f4b1967fc7891c56a872d82e983de4f6be3543ea6307c3a8
...
diff --git a/.prettierignore b/.prettierignore
deleted file mode 100644
index 23a4f05..0000000
--- a/.prettierignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.drone.yml
-*.tpl.md
-LICENSE
diff --git a/Dockerfile.arm b/Dockerfile.arm
deleted file mode 100644
index eb501a0..0000000
--- a/Dockerfile.arm
+++ /dev/null
@@ -1,42 +0,0 @@
-FROM arm32v7/node:lts-alpine3.16@sha256:6f0824b1c1b5f4265c94c16c9db09286bcb1dd4b717c441b312fd102764132fb
-
-LABEL maintainer="Robert Kaussow "
-LABEL org.opencontainers.image.authors="Robert Kaussow "
-LABEL org.opencontainers.image.title="alpine-tools"
-LABEL org.opencontainers.image.url="https://gitea.rknet.org/docker/alpine-tools"
-LABEL org.opencontainers.image.source="https://gitea.rknet.org/docker/alpine-tools"
-LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/docker/alpine-tools"
-
-ARG GOMPLATE_VERSION
-ARG SUPERCRONIC_VERSION
-ARG URL_PARSER_VERSION
-ARG PRETTIER_VERSION
-
-# renovate: datasource=github-releases depName=hairyhenderson/gomplate
-ENV GOMPLATE_VERSION="${GOMPLATE_VERSION:-v3.11.3}"
-# renovate: datasource=github-releases depName=thegeeklab/url-parser
-ENV URL_PARSER_VERSION="${URL_PARSER_VERSION:-v1.0.1}"
-# renovate: datasource=npm depName=prettier
-ENV PRETTIER_VERSION="${PRETTIER_VERSION:-2.8.3}"
-# renovate: datasource=npm depName=spellchecker-cli
-ENV SPELLCHECKER_VERSION="${SPELLCHECKER_VERSION:-6.1.1}"
-# renovate: datasource=npm depName=js-beautify
-ENV JSBEAUTIFY_VERSION="${JSBEAUTIFY_VERSION:-1.14.7}"
-
-RUN apk --update add curl make tar git && \
- curl -SsfL -o /usr/local/bin/gomplate "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_linux-armv7" && \
- curl -SsfL -o /usr/local/bin/url-parser "https://github.com/thegeeklab/url-parser/releases/download/${URL_PARSER_VERSION}/url-parser-linux-arm-7" && \
- chmod 755 /usr/local/bin/gomplate && \
- chmod 755 /usr/local/bin/url-parser && \
- npm install -q --location=global \
- "prettier@$PRETTIER_VERSION" \
- "spellchecker-cli@$SPELLCHECKER_VERSION" \
- "js-beautify@$JSBEAUTIFY_VERSION" && \
- rm -rf /var/cache/apk/* && \
- rm -rf /tmp/*
-
-ADD overlay/ /
-
-STOPSIGNAL SIGTERM
-
-CMD []
diff --git a/Dockerfile.arm64 b/Dockerfile.arm64
deleted file mode 100644
index 7e6eeb5..0000000
--- a/Dockerfile.arm64
+++ /dev/null
@@ -1,42 +0,0 @@
-FROM arm64v8/node:lts-alpine3.16@sha256:f9ac855807f80666ae83b4d1eeb3a842d62ff89ddb42b37b591e63f915d0708c
-
-LABEL maintainer="Robert Kaussow "
-LABEL org.opencontainers.image.authors="Robert Kaussow "
-LABEL org.opencontainers.image.title="alpine-tools"
-LABEL org.opencontainers.image.url="https://gitea.rknet.org/docker/alpine-tools"
-LABEL org.opencontainers.image.source="https://gitea.rknet.org/docker/alpine-tools"
-LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/docker/alpine-tools"
-
-ARG GOMPLATE_VERSION
-ARG SUPERCRONIC_VERSION
-ARG URL_PARSER_VERSION
-ARG PRETTIER_VERSION
-
-# renovate: datasource=github-releases depName=hairyhenderson/gomplate
-ENV GOMPLATE_VERSION="${GOMPLATE_VERSION:-v3.11.3}"
-# renovate: datasource=github-releases depName=thegeeklab/url-parser
-ENV URL_PARSER_VERSION="${URL_PARSER_VERSION:-v1.0.1}"
-# renovate: datasource=npm depName=prettier
-ENV PRETTIER_VERSION="${PRETTIER_VERSION:-2.8.3}"
-# renovate: datasource=npm depName=spellchecker-cli
-ENV SPELLCHECKER_VERSION="${SPELLCHECKER_VERSION:-6.1.1}"
-# renovate: datasource=npm depName=js-beautify
-ENV JSBEAUTIFY_VERSION="${JSBEAUTIFY_VERSION:-1.14.7}"
-
-RUN apk --update add curl make tar git && \
- curl -SsfL -o /usr/local/bin/gomplate "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_linux-arm64" && \
- curl -SsfL -o /usr/local/bin/url-parser "https://github.com/thegeeklab/url-parser/releases/download/${URL_PARSER_VERSION}/url-parser-linux-arm64" && \
- chmod 755 /usr/local/bin/gomplate && \
- chmod 755 /usr/local/bin/url-parser && \
- npm install -q --location=global \
- "prettier@$PRETTIER_VERSION" \
- "spellchecker-cli@$SPELLCHECKER_VERSION" \
- "js-beautify@$JSBEAUTIFY_VERSION" && \
- rm -rf /var/cache/apk/* && \
- rm -rf /tmp/*
-
-ADD overlay/ /
-
-STOPSIGNAL SIGTERM
-
-CMD []
diff --git a/Dockerfile.amd64 b/Dockerfile.multiarch
similarity index 91%
rename from Dockerfile.amd64
rename to Dockerfile.multiarch
index 40e4cab..5ba9c86 100644
--- a/Dockerfile.amd64
+++ b/Dockerfile.multiarch
@@ -7,6 +7,10 @@ LABEL org.opencontainers.image.url="https://gitea.rknet.org/docker/alpine-tools"
LABEL org.opencontainers.image.source="https://gitea.rknet.org/docker/alpine-tools"
LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/docker/alpine-tools"
+ARG TARGETOS
+ARG TARGETARCH
+ARG TARGETVARIANT
+
ARG GOMPLATE_VERSION
ARG SUPERCRONIC_VERSION
ARG URL_PARSER_VERSION
@@ -24,8 +28,8 @@ ENV SPELLCHECKER_VERSION="${SPELLCHECKER_VERSION:-6.1.1}"
ENV JSBEAUTIFY_VERSION="${JSBEAUTIFY_VERSION:-1.14.7}"
RUN apk --update add curl make tar git && \
- curl -SsfL -o /usr/local/bin/gomplate "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_linux-amd64" && \
- curl -SsfL -o /usr/local/bin/url-parser "https://github.com/thegeeklab/url-parser/releases/download/${URL_PARSER_VERSION}/url-parser-linux-amd64" && \
+ curl -SsfL -o /usr/local/bin/gomplate "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS}-${TARGETARCH}${TARGETVARIANT}" && \
+ curl -SsfL -o /usr/local/bin/url-parser "https://github.com/thegeeklab/url-parser/releases/download/${URL_PARSER_VERSION}/url-parser-${TARGETOS}-${TARGETARCH}${TARGETVARIANT//v/-}" && \
chmod 755 /usr/local/bin/gomplate && \
chmod 755 /usr/local/bin/url-parser && \
npm install -q --location=global \
diff --git a/manifest-quay.tmpl b/manifest-quay.tmpl
deleted file mode 100644
index 270f69e..0000000
--- a/manifest-quay.tmpl
+++ /dev/null
@@ -1,24 +0,0 @@
-image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64
- platform:
- architecture: amd64
- os: linux
-
- - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
-
- - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm
- platform:
- architecture: arm
- os: linux
- variant: v7
diff --git a/manifest.tmpl b/manifest.tmpl
deleted file mode 100644
index 927d354..0000000
--- a/manifest.tmpl
+++ /dev/null
@@ -1,24 +0,0 @@
-image: thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- - image: thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64
- platform:
- architecture: amd64
- os: linux
-
- - image: thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
-
- - image: thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm
- platform:
- architecture: arm
- os: linux
- variant: v7