From ec21e36dd1d9d045bbf97eafed94b22f6bcd5f18 Mon Sep 17 00:00:00 2001 From: Aaron Riedel Date: Mon, 21 Oct 2024 22:09:47 +0200 Subject: [PATCH] initial commit --- .woodpecker/.build.yaml | 35 ++++++++++++ .woodpecker/.deploy.yaml | 115 +++++++++++++++++++++++++++++++++++++++ .woodpecker/.lint.yaml | 7 +++ .woodpecker/.test.yaml | 20 +++++++ Dockerfile | 2 + README.md | 0 6 files changed, 179 insertions(+) create mode 100644 .woodpecker/.build.yaml create mode 100644 .woodpecker/.deploy.yaml create mode 100644 .woodpecker/.lint.yaml create mode 100644 .woodpecker/.test.yaml create mode 100644 Dockerfile create mode 100644 README.md diff --git a/.woodpecker/.build.yaml b/.woodpecker/.build.yaml new file mode 100644 index 0000000..72a316f --- /dev/null +++ b/.woodpecker/.build.yaml @@ -0,0 +1,35 @@ +steps: +- name: docker + image: woodpeckerci/plugin-docker-buildx + privileged: true + settings: + registry: git.ar21.de + username: + from_secret: REGISTRY_USER + password: + from_secret: REGISTRY_PASS + repo: git.ar21.de/${CI_REPO} + tags: + - latest + - ${CI_PIPELINE_NUMBER} + when: + - branch: main + event: [push, manual] +- name: docker-build + image: woodpeckerci/plugin-docker-buildx + privileged: true + settings: + registry: git.ar21.de + username: + from_secret: REGISTRY_USER + password: + from_secret: REGISTRY_PASS + repo: git.ar21.de/${CI_REPO} + tags: + - testing-${CI_PIPELINE_NUMBER} + when: + - branch: + exclude: main + event: [push, manual] +depends_on: + - lint diff --git a/.woodpecker/.deploy.yaml b/.woodpecker/.deploy.yaml new file mode 100644 index 0000000..19d4aeb --- /dev/null +++ b/.woodpecker/.deploy.yaml @@ -0,0 +1,115 @@ +skip_clone: true +steps: +- name: bump tag in deployment-repo (prod) + image: git.ar21.de/aaron/kustomize-ci + commands: + - git clone https://git.ar21.de/aaron/deploymentrepo.git deployment-repo + - cd deployment-repo/testapp/overlays/prod + - kustomize edit set image git.ar21.de/aaron/testapp=git.ar21.de/aaron/testapp:${CI_PIPELINE_NUMBER} + when: + - branch: main + event: push +- name: bump tag in deployment-repo (testing) + image: git.ar21.de/aaron/kustomize-ci + commands: + - git clone https://git.ar21.de/aaron/deploymentrepo.git deployment-repo + - cd deployment-repo/testapp/overlays/testing + - kustomize edit set image git.ar21.de/aaron/testapp=git.ar21.de/aaron/testapp:testing-${CI_PIPELINE_NUMBER} + when: + - branch: + exclude: main + event: push +- name: push new tag to deployment-repo (prod) + image: appleboy/drone-git-push + settings: + branch: "${CI_PIPELINE_NUMBER}_testapp_prod" + remote: ssh://git@git.ar21.de:2222/aaron/deploymentrepo.git + path: deployment-repo + force: false + commit: true + commit_message: "testapp: update image tag to ${CI_PIPELINE_NUMBER} (done automagically via Woodpecker pipeline)" + ssh_key: + from_secret: FORGEJO_SSH_KEY + when: + - branch: main + event: push +- name: push new tag to deployment-repo (staging) + image: appleboy/drone-git-push + settings: + branch: "${CI_PIPELINE_NUMBER}_testapp_staging" + remote: ssh://git@git.ar21.de:2222/aaron/deploymentrepo.git + path: deployment-repo + force: false + commit: true + commit_message: "testapp STAGING: update image tag to staging-${CI_PIPELINE_NUMBER} (done automagically via Woodpecker pipeline)" + ssh_key: + from_secret: FORGEJO_SSH_KEY + when: + - branch: + exclude: main + event: push +- name: create pull request (prod) + image: git.ar21.de/tom/push-message-randomizer:latest + pull: true + settings: + gitea_address: https://git.ar21.de + gitea_token: + from_secret: FORGEJO_API + owner: ${CI_REPO_OWNER} + repo: deploymentrepo + branch: "${CI_PIPELINE_NUMBER}_testapp_prod" + base_branch: main + pr_title: "TESTAPP: update image tag to ${CI_PIPELINE_NUMBER}" + pr_body: | + ### ℹ testapp image update + + {- random-pr-message -} + + ### Configuration + + 📅 **Schedule**: Branch creation - At any time, Automerge - At any time. + + 🚦 **Automerge**: Enabled. + skip_on_missing_branch: true + close_pr_if_empty: true + delete_branch_if_pr_empty: true + merge_when_checks_succeed: true + delete_branch_after_merge: true + when: + - branch: main + event: push +- name: create pull request (staging) + image: git.ar21.de/tom/push-message-randomizer:latest + pull: true + settings: + gitea_address: https://git.ar21.de + gitea_token: + from_secret: FORGEJO_API + owner: ${CI_REPO_OWNER} + repo: deploymentrepo + branch: "${CI_PIPELINE_NUMBER}_testapp_staging" + base_branch: main + pr_title: "TESTAPP STAGING: update image tag to ${CI_PIPELINE_NUMBER}" + pr_body: | + ### ℹ testapp image update + + {- random-pr-message -} + + ### Configuration + + 📅 **Schedule**: Branch creation - At any time, Automerge - At any time. + + 🚦 **Automerge**: Enabled. + skip_on_missing_branch: true + close_pr_if_empty: true + delete_branch_if_pr_empty: true + merge_when_checks_succeed: true + delete_branch_after_merge: true + when: + - branch: + exclude: main + event: push +depends_on: + - lint + - build + - test diff --git a/.woodpecker/.lint.yaml b/.woodpecker/.lint.yaml new file mode 100644 index 0000000..f676be8 --- /dev/null +++ b/.woodpecker/.lint.yaml @@ -0,0 +1,7 @@ +labels: + backend: docker +steps: +- name: Lint Dockerfile + image: hadolint/hadolint:latest-alpine + commands: + - hadolint -t error Dockerfile diff --git a/.woodpecker/.test.yaml b/.woodpecker/.test.yaml new file mode 100644 index 0000000..f05b651 --- /dev/null +++ b/.woodpecker/.test.yaml @@ -0,0 +1,20 @@ +skip_clone: true +steps: +- name: Test image (prod) + image: git.ar21.de/${CI_REPO}:${CI_PIPELINE_NUMBER} + commands: + - echo test + when: + - branch: main + event: [push, manual] +- name: Test image + image: git.ar21.de/${CI_REPO}:testing-${CI_PIPELINE_NUMBER} + commands: + - echo test + when: + - branch: + exclude: main + event: [push, manual] +depends_on: + - lint + - build diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fb72cb9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,2 @@ +FROM alpine:latest +RUN echo "Building" \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29