Compare commits

..

No commits in common. "master" and "single-file" have entirely different histories.

4 changed files with 100 additions and 19 deletions

View File

@ -1,6 +1,25 @@
kind: pipeline
name: tests
trigger:
event:
- push
- tag
steps:
- name: run tests
image: ubuntu:bionic
commands:
- apt-get update
- apt-get install -y make
- make test
--- ---
kind: pipeline kind: pipeline
name: docker builds name: linux-amd64
depends_on:
- tests
trigger: trigger:
event: event:
@ -11,35 +30,69 @@ trigger:
- refs/tags/v* - refs/tags/v*
steps: steps:
- name: build amd64 - name: build
image: plugins/docker image: plugins/docker
settings: settings:
repo: iamthefij/multiarch-pipeline-test repo: iamthefij/multiarch-pipeline-test
auto_tag: true auto_tag: true
auto_tag_suffix: drone-amd64 auto_tag_suffix: linux-amd64
username: username:
from_secret: docker_username from_secret: docker_username
password: password:
from_secret: docker_password from_secret: docker_password
- name: build arm32v7
---
kind: pipeline
name: linux-arm
depends_on:
- tests
trigger:
event:
- push
- tag
ref:
- refs/heads/master
- refs/tags/v*
steps:
- name: build
image: plugins/docker image: plugins/docker
settings: settings:
repo: iamthefij/multiarch-pipeline-test repo: iamthefij/multiarch-pipeline-test
auto_tag: true auto_tag: true
auto_tag_suffix: drone-arm auto_tag_suffix: linux-arm
username: username:
from_secret: docker_username from_secret: docker_username
password: password:
from_secret: docker_password from_secret: docker_password
build_args: build_args:
- ARCH=arm - ARCH=arm
- REPO=arm32v7 - REPO=arm32v6
- name: build-arm64
---
kind: pipeline
name: linux-arm64
depends_on:
- tests
trigger:
event:
- push
- tag
ref:
- refs/heads/master
- refs/tags/v*
steps:
- name: build
image: plugins/docker image: plugins/docker
settings: settings:
repo: iamthefij/multiarch-pipeline-test repo: iamthefij/multiarch-pipeline-test
auto_tag: true auto_tag: true
auto_tag_suffix: drone-arm64 auto_tag_suffix: linux-arm64
username: username:
from_secret: docker_username from_secret: docker_username
password: password:
@ -47,13 +100,33 @@ steps:
build_args: build_args:
- ARCH=aarch64 - ARCH=aarch64
- REPO=arm64v8 - REPO=arm64v8
---
kind: pipeline
name: manifest
depends_on:
- linux-amd64
- linux-arm
- linux-arm64
trigger:
event:
- push
- tag
ref:
- refs/heads/master
- refs/tags/v*
steps:
- name: publish manifest - name: publish manifest
image: plugins/manifest image: plugins/manifest
settings: settings:
spec: drone-manifest.tmpl spec: manifest.tmpl
auto_tag: true auto_tag: true
ignore_missing: true ignore_missing: true
username: username:
from_secret: docker_username from_secret: docker_username
password: password:
from_secret: docker_password from_secret: docker_password

View File

@ -4,17 +4,11 @@
ARG REPO=library ARG REPO=library
FROM multiarch/qemu-user-static:4.2.0-2 as qemu-user-static FROM multiarch/qemu-user-static:4.2.0-2 as qemu-user-static
# On some systems, touching a dummy file in the /usr/bin dir doesn't work
# and instead removes all files previously in the directory. Not sure why
# this is happening. Moving everything to a different directory seems to
# work fine though.
RUN mkdir /qemu && touch /qemu/qemu-x86_64-dummy && cp /usr/bin/qemu-* /qemu/
FROM ${REPO}/python:3-alpine FROM ${REPO}/python:3-alpine
# This should be the target qemu arch # This should be the target qemu arch
ARG ARCH=x86_64 ARG ARCH=x86_64
COPY --from=qemu-user-static /qemu/qemu-${ARCH}-* /usr/bin/ COPY --from=qemu-user-static /usr/bin/qemu-* /usr/bin/
# Everything below here is just a simple example # Everything below here is just a simple example

14
get_qemu.sh Executable file
View File

@ -0,0 +1,14 @@
#! /bin/bash
HOST_ARCH=x86_64
VERSION=v2.9.1-1
mkdir -p build
cd build
# Multiple args can be passed in, but in most cases (Makefile and .drone.yml) we only use one at a time
for target_arch in $*; do
wget https://github.com/multiarch/qemu-user-static/releases/download/$VERSION/${HOST_ARCH}_qemu-${target_arch}-static.tar.gz
tar -xvf ${HOST_ARCH}_qemu-${target_arch}-static.tar.gz
rm ${HOST_ARCH}_qemu-${target_arch}-static.tar.gz
done

View File

@ -7,18 +7,18 @@ tags:
{{/if}} {{/if}}
manifests: manifests:
- -
image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}drone-amd64 image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
platform: platform:
architecture: amd64 architecture: amd64
os: linux os: linux
- -
image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}drone-arm64 image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
platform: platform:
architecture: arm64 architecture: arm64
os: linux os: linux
variant: v8 variant: v8
- -
image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}drone-arm image: iamthefij/multiarch-pipeline-test:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
platform: platform:
architecture: arm architecture: arm
os: linux os: linux