diff --git a/.drone.yml b/.drone.yml index 1e8555f..7f26ccd 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,7 +8,6 @@ clone: platform: os: linux - arch: amd64 steps: - name: clone @@ -53,11 +52,14 @@ trigger: --- kind: pipeline type: docker -name: latest-amd64 +name: dry-run-amd64 clone: disable: true +depends_on: +- linter + platform: os: linux arch: amd64 @@ -67,17 +69,23 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: false - tags: latest-amd64 - repo: volkerraschek/rpm-builder - username: - from_secret: container_image_registry_user - password: - from_secret: container_image_registry_password + dockerfile: Dockerfile + dry_run: true + force_tag: true no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-amd64 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password - name: email-notification environment: @@ -97,9 +105,203 @@ steps: - changed - failure +trigger: + branch: + exclude: + - master + event: + - pull_request + - push + repo: + - volker.raschek/rpm-builder-docker + +--- +kind: pipeline +type: docker +name: dry-run-arm-v7 + +clone: + disable: true + depends_on: - linter +platform: + os: linux + arch: arm + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.2.1 + +- name: build + image: docker.io/plugins/docker:20.10.9 + settings: + auto_tag: false + dockerfile: Dockerfile + dry_run: true + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-arm-v7 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.2 + when: + status: + - changed + - failure + +trigger: + branch: + exclude: + - master + event: + - pull_request + - push + repo: + - volker.raschek/rpm-builder-docker + +--- +kind: pipeline +type: docker +name: dry-run-arm64-v8 + +clone: + disable: true + +depends_on: +- linter + +platform: + os: linux + arch: arm64 + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.2.1 + +- name: build + image: docker.io/plugins/docker:20.10.9 + settings: + auto_tag: false + dockerfile: Dockerfile + dry_run: true + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-arm64-v8 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.2 + when: + status: + - changed + - failure + +trigger: + branch: + exclude: + - master + event: + - pull_request + - push + repo: + - volker.raschek/rpm-builder-docker + +--- +kind: pipeline +type: docker +name: latest-amd64 + +clone: + disable: true + +depends_on: +- linter + +platform: + os: linux + arch: amd64 + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.2.1 + +- name: build + image: docker.io/plugins/docker:20.10.9 + settings: + auto_tag: false + dockerfile: Dockerfile + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-amd64 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.2 + when: + status: + - changed + - failure + trigger: branch: - master @@ -117,6 +319,9 @@ name: latest-arm-v7 clone: disable: true +depends_on: +- linter + platform: os: linux arch: arm @@ -126,17 +331,22 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: false - tags: latest-arm-v7 - repo: volkerraschek/rpm-builder - username: - from_secret: container_image_registry_user - password: - from_secret: container_image_registry_password + dockerfile: Dockerfile + force_tag: true no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-arm-v7 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password - name: email-notification environment: @@ -156,9 +366,6 @@ steps: - changed - failure -depends_on: -- linter - trigger: branch: - master @@ -176,6 +383,9 @@ name: latest-arm64-v8 clone: disable: true +depends_on: +- linter + platform: os: linux arch: arm64 @@ -185,17 +395,22 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: false - tags: latest-arm64-v8 - repo: volkerraschek/rpm-builder - username: - from_secret: container_image_registry_user - password: - from_secret: container_image_registry_password + dockerfile: Dockerfile + force_tag: true no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder + tags: latest-arm64-v8 + username: + from_secret: git_cryptic_systems_container_registry_user + password: + from_secret: git_cryptic_systems_container_registry_password - name: email-notification environment: @@ -215,9 +430,6 @@ steps: - changed - failure -depends_on: -- linter - trigger: branch: - master @@ -235,6 +447,11 @@ name: latest-manifest clone: disable: true +depends_on: +- latest-amd64 +- latest-arm-v7 +- latest-arm64-v8 + # docker.io/plugins/manifest only for amd64 architectures available node_selector: kubernetes.io/os: linux @@ -251,9 +468,9 @@ steps: ignore_missing: true spec: manifest.tmpl username: - from_secret: container_image_registry_user + from_secret: git_cryptic_systems_container_registry_user password: - from_secret: container_image_registry_password + from_secret: git_cryptic_systems_container_registry_password - name: email-notification environment: @@ -277,10 +494,65 @@ steps: - changed - failure +trigger: + branch: + - master + event: + - cron + - push + repo: + - volker.raschek/rpm-builder-docker + +--- +kind: pipeline +type: kubernetes +name: latest-sync + +clone: + disable: true + depends_on: -- latest-amd64 -- latest-arm-v7 -- latest-arm64-v8 +- latest-manifest + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.2.1 + +- name: latest-sync + commands: + - skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/rpm-builder docker.io/volkerraschek + environment: + SRC_CRED_USERNAME: + from_secret: git_cryptic_systems_container_registry_user + SRC_CRED_PASSWORD: + from_secret: git_cryptic_systems_container_registry_password + DEST_CRED_USERNAME: + from_secret: container_image_registry_user + DEST_CRED_PASSWORD: + from_secret: container_image_registry_password + image: quay.io/skopeo/stable:v1.11.2 + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.2 + resources: + limits: + cpu: 150 + memory: 150M + when: + status: + - changed + - failure trigger: branch: @@ -308,19 +580,24 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: true auto_tag_suffix: amd64 - repo: volkerraschek/rpm-builder + dockerfile: Dockerfile + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder username: - from_secret: container_image_registry_user + from_secret: git_cryptic_systems_container_registry_user password: - from_secret: container_image_registry_password + from_secret: git_cryptic_systems_container_registry_password build_args: - RPMBUILDER_VERSION=${DRONE_TAG} - no_cache: true - name: email-notification environment: @@ -363,19 +640,24 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: true auto_tag_suffix: arm-v7 - repo: volkerraschek/rpm-builder + dockerfile: Dockerfile + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder username: - from_secret: container_image_registry_user + from_secret: git_cryptic_systems_container_registry_user password: - from_secret: container_image_registry_password + from_secret: git_cryptic_systems_container_registry_password build_args: - RPMBUILDER_VERSION=${DRONE_TAG} - no_cache: true - name: email-notification environment: @@ -418,19 +700,24 @@ steps: image: git.cryptic.systems/volker.raschek/git:1.2.1 - name: build - image: docker.io/plugins/docker:20.14.4 + image: docker.io/plugins/docker:20.10.9 settings: - dockerfile: Dockerfile auto_tag: true auto_tag_suffix: arm64-v8 - repo: volkerraschek/rpm-builder + dockerfile: Dockerfile + force_tag: true + no_cache: true + purge: true + mirror: + from_secret: docker_io_mirror + registry: git.cryptic.systems + repo: git.cryptic.systems/volker.raschek/rpm-builder username: - from_secret: container_image_registry_user + from_secret: git_cryptic_systems_container_registry_user password: - from_secret: container_image_registry_password + from_secret: git_cryptic_systems_container_registry_password build_args: - RPMBUILDER_VERSION=${DRONE_TAG} - no_cache: true - name: email-notification environment: @@ -464,6 +751,11 @@ name: tagged-manifest clone: disable: true +depends_on: +- tagged-amd64 +- tagged-arm-v7 +- tagged-arm64-v8 + # docker.io/plugins/manifest only for amd64 architectures available node_selector: kubernetes.io/os: linux @@ -480,9 +772,9 @@ steps: ignore_missing: true spec: manifest.tmpl username: - from_secret: container_image_registry_user + from_secret: git_cryptic_systems_container_registry_user password: - from_secret: container_image_registry_password + from_secret: git_cryptic_systems_container_registry_password - name: email-notification environment: @@ -506,10 +798,62 @@ steps: - changed - failure +trigger: + event: + - tag + repo: + - volker.raschek/rpm-builder-docker + +--- +kind: pipeline +type: kubernetes +name: tagged-sync + +clone: + disable: true + depends_on: -- tagged-amd64 -- tagged-arm-v7 -- tagged-arm64-v8 +- tagged-manifest + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.2.1 + +- name: tagged-sync + commands: + - skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/rpm-builder docker.io/volkerraschek + environment: + SRC_CRED_USERNAME: + from_secret: git_cryptic_systems_container_registry_user + SRC_CRED_PASSWORD: + from_secret: git_cryptic_systems_container_registry_password + DEST_CRED_USERNAME: + from_secret: container_image_registry_user + DEST_CRED_PASSWORD: + from_secret: container_image_registry_password + image: quay.io/skopeo/stable:v1.11.2 + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.2 + resources: + limits: + cpu: 150 + memory: 150M + when: + status: + - changed + - failure trigger: event: diff --git a/manifest.tmpl b/manifest.tmpl index b972342..1665c77 100644 --- a/manifest.tmpl +++ b/manifest.tmpl @@ -1,4 +1,4 @@ -image: volkerraschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +image: git.cryptic.systems/volker.raschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} {{#if build.tags}} tags: {{#each build.tags}} @@ -7,19 +7,16 @@ tags: - "latest" {{/if}} manifests: - - - image: volkerraschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 + - image: git.cryptic.systems/volker.raschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 platform: architecture: amd64 os: linux - - - image: volkerraschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm-v7 + - image: git.cryptic.systems/volker.raschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm-v7 platform: architecture: arm os: linux variant: v7 - - - image: volkerraschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8 + - image: git.cryptic.systems/volker.raschek/rpm-builder:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8 platform: architecture: arm64 os: linux