Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
20e0155e8c | |||
dcb47da9f7 | |||
be642e2c4d | |||
46585688c6 | |||
837235524a | |||
92223686ff | |||
8a9583e3a3 | |||
1fb403fd64 | |||
fb01815c85 | |||
9c11f1705c | |||
aad30fda0f |
136
.drone.yml
136
.drone.yml
@@ -1,84 +1,130 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: linux-amd64
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
name: amd64-main
|
||||
node_selector: # Ensure this runs on an amd64 runner
|
||||
kubernetes.io/arch: amd64
|
||||
trigger: # Only run on pushes to the main branch
|
||||
event: [ push ]
|
||||
branch: [ main ]
|
||||
steps:
|
||||
- name: build_push_amd64_latest
|
||||
image: plugins/docker # Use Docker plugin to build and push image
|
||||
settings:
|
||||
repo: bottledpills/deluge-openvpn
|
||||
dockerfile: docker/Dockerfile.amd64
|
||||
tags:
|
||||
- latest-linux-amd64 # Tag for amd64 variant (main branch → "latest")
|
||||
username:
|
||||
from_secret: docker_username # Docker registry credentials (secret)
|
||||
password:
|
||||
from_secret: docker_password
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: arm64-main
|
||||
node_selector: # Ensure this runs on an arm64 runner
|
||||
kubernetes.io/arch: arm64
|
||||
trigger: # Only run on pushes to the main branch
|
||||
event: [ push ]
|
||||
branch: [ main ]
|
||||
steps:
|
||||
- name: build_push_arm64_latest
|
||||
image: plugins/docker
|
||||
settings:
|
||||
repo: bottledpills/deluge-openvpn
|
||||
dockerfile: docker/Dockerfile.arm64
|
||||
tags:
|
||||
- latest-linux-arm64 # Tag for arm64 variant (main branch → "latest")
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: amd64-tag
|
||||
node_selector:
|
||||
kubernetes.io/arch: amd64
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
trigger: # Only run on creation of Git tags (releases)
|
||||
event: [ tag ]
|
||||
steps:
|
||||
- name: docker
|
||||
- name: build_push_amd64_version
|
||||
image: plugins/docker
|
||||
settings:
|
||||
repo: bottledpills/deluge-openvpn
|
||||
dockerfile: docker/Dockerfile.amd64
|
||||
# Use Drone env substitution to strip the leading "v" from the tag [oai_citation_attribution:0‡docs.drone.io](https://docs.drone.io/pipeline/environment/substitution/#:~:text=,0)
|
||||
tags:
|
||||
- ${DRONE_TAG##v}-linux-amd64 # e.g. "v2.0.1" → "2.0.1-linux-amd64"
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
repo: bottledpills/deluge-openvpn
|
||||
auto_tag: true
|
||||
auto_tag_suffix: linux-amd64
|
||||
platform: 'linux/amd64'
|
||||
tags:
|
||||
- latest
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: linux-arm64
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm64
|
||||
name: arm64-tag
|
||||
node_selector:
|
||||
kubernetes.io/arch: arm64
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
trigger: # Only run on creation of Git tags (releases)
|
||||
event: [ tag ]
|
||||
steps:
|
||||
- name: docker
|
||||
- name: build_push_arm64_version
|
||||
image: plugins/docker
|
||||
settings:
|
||||
repo: bottledpills/deluge-openvpn
|
||||
dockerfile: docker/Dockerfile.arm64
|
||||
tags:
|
||||
- ${DRONE_TAG##v}-linux-arm64 # e.g. "v2.0.1" → "2.0.1-linux-arm64"
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
repo: bottledpills/deluge-openvpn
|
||||
auto_tag: true
|
||||
auto_tag_suffix: linux-arm64
|
||||
platform: 'linux/arm64'
|
||||
tags:
|
||||
- latest
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: manifest
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm64
|
||||
name: manifest-main
|
||||
# The manifest step can run on either architecture; we'll use amd64 for consistency
|
||||
node_selector:
|
||||
kubernetes.io/arch: arm64
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
kubernetes.io/arch: amd64
|
||||
trigger: # Run on main branch pushes (to create "latest" manifest)
|
||||
event: [ push ]
|
||||
branch: [ main ]
|
||||
depends_on: # Wait for both arch images to be built and pushed
|
||||
- amd64-main
|
||||
- arm64-main
|
||||
steps:
|
||||
- name: manifest
|
||||
- name: push_manifest_latest
|
||||
image: plugins/manifest # Drone manifest plugin to create multi-arch manifest
|
||||
settings:
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
spec: docker/manifest.tmpl # Use external manifest template for tags and images
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: manifest-tag
|
||||
node_selector:
|
||||
kubernetes.io/arch: amd64
|
||||
trigger: # Run on tag events (to create versioned manifest)
|
||||
event: [ tag ]
|
||||
depends_on:
|
||||
- amd64-tag
|
||||
- arm64-tag
|
||||
steps:
|
||||
- name: push_manifest_version
|
||||
image: plugins/manifest
|
||||
settings:
|
||||
spec: docker/manifest.tmpl
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
auto_tag: true
|
||||
ignore_missing: true
|
||||
tags:
|
||||
- latest
|
||||
depends_on:
|
||||
- linux-amd64
|
||||
- linux-arm64
|
||||
spec: docker/manifest.tmpl # Same template handles both latest and version tags
|
@@ -1,12 +1,14 @@
|
||||
# docker/manifest.tmpl
|
||||
image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
|
||||
|
||||
manifests:
|
||||
-
|
||||
image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
|
||||
- image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
|
||||
platform:
|
||||
architecture: amd64
|
||||
os: linux
|
||||
-
|
||||
image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
|
||||
|
||||
- image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
|
||||
platform:
|
||||
architecture: arm64
|
||||
os: linux
|
||||
variant: v8
|
Reference in New Issue
Block a user