Radek Goláň jr. 2b00dcc305
All checks were successful
ci/woodpecker/push/scans Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci: 💚 use jq -r to strip quotes in output
2024-10-31 11:05:24 +01:00

105 lines
3.1 KiB
YAML

variables:
- &file Containerfile
- &repo dev.shielddagger.com/opensource/discord-notifier
when:
- event: [push, pull_request]
steps:
- name: configure
when:
- event: push
branch: main
image: alpine:latest
commands:
- echo ${CI_COMMIT_SHA:0:8} > .version
- name: dryrun
image: woodpeckerci/plugin-docker-buildx
backend_options:
kubernetes:
securityContext:
privileged: true
settings:
dockerfile: *file
platforms: linux/arm64,linux/amd64
cache_from: type=registry,ref=dev.shielddagger.com/opensource/discord-notifier
cache_to: type=inline
dry_run: true
repo: *repo
tags: latest
registry: dev.shielddagger.com
username:
from_secret: registry_username
password:
from_secret: registry_password
when:
- event: pull_request
- name: publish
image: woodpeckerci/plugin-docker-buildx
backend_options:
kubernetes:
securityContext:
privileged: true
settings:
dockerfile: *file
platforms: linux/arm64,linux/amd64
cache_from: type=registry,ref=dev.shielddagger.com/opensource/discord-notifier
cache_to: type=inline
repo: *repo
auto_tag: true
tags: ${CI_COMMIT_SHA:0:8}
registry: dev.shielddagger.com
username:
from_secret: registry_username
password:
from_secret: registry_password
when:
- event: push
branch: main
- name: gather-digests
image: quay.io/skopeo/stable:latest
environment:
DOCKER_USER:
from_secret: registry_username
DOCKER_PASS:
from_secret: registry_password
when:
- event: push
branch: main
commands:
- dnf install -y jq
- skopeo login dev.shielddagger.com --username $DOCKER_USER --password $DOCKER_PASS
- skopeo inspect --raw docker://dev.shielddagger.com/opensource/discord-notifier:latest | jq -r .'manifests[] | select(.platform.architecture=="arm64").digest' > digest-arm64
- skopeo inspect --raw docker://dev.shielddagger.com/opensource/discord-notifier:latest | jq -r .'manifests[] | select(.platform.architecture=="amd64").digest' > digest-amd64
- name: image-scan
image: aquasec/trivy
environment:
TRIVY_USER:
from_secret: registry_username
TRIVY_PASSWORD:
from_secret: registry_password
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
TRIVY_JAVA_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-java-db
TRIVY_CHECKS_BUNDLE_REPOSITORY: public.ecr.aws/aquasecurity/trivy-checks
commands:
- export ARM64_DIGEST=$(cat digest-arm64)
- trivy image --platform linux/arm64 --debug dev.shielddagger.com/opensource/discord-notifier@$ARM64_DIGEST --exit-code 1 --username $TRIVY_USER --severity HIGH,CRITICAL
when:
- event: push
branch: main
- name: notify
image: dev.shielddagger.com/opensource/discord-notifier
failure: ignore
settings:
webhook_url:
from_secret: discord_webhook
woodpecker_url: https://ci.shielddagger.com/api
woodpecker_token:
from_secret: woodpecker_token
icon_url: https://discord.com/api/webhooks/1231848304694919270/1ApQzOPMfNosxhQ62HbYScBT5s94m0bIUn1IFGQlT6d8Ru2ImcHHjjkFA_SaonBNU3yz
when:
- status: [success, failure]
depends_on:
- scans