105 lines
3.1 KiB
YAML
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
|