From a4875f9488673db9b393d6249cc995a903270168 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Sat, 11 Jan 2025 12:36:09 +0100 Subject: [PATCH] chore(ci): replace drone-ci with act --- .drone.yml | 200 ------------------------- .gitea/workflows/generate-readme.yaml | 30 ++++ .gitea/workflows/helm.yaml | 40 +++++ .gitea/workflows/markdown-linters.yaml | 44 ++++++ .gitea/workflows/release.yaml | 46 ++++++ Makefile | 4 +- 6 files changed, 162 insertions(+), 202 deletions(-) delete mode 100644 .drone.yml create mode 100644 .gitea/workflows/generate-readme.yaml create mode 100644 .gitea/workflows/helm.yaml create mode 100644 .gitea/workflows/markdown-linters.yaml create mode 100644 .gitea/workflows/release.yaml diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index a569673..0000000 --- a/.drone.yml +++ /dev/null @@ -1,200 +0,0 @@ ---- -kind: pipeline -type: kubernetes -name: Linters - -clone: - disable: true - -platform: - os: linux - arch: amd64 - -steps: -- name: clone repository - image: git.cryptic.systems/volker.raschek/git:1.4.0 - -- name: helm lint - commands: - - helm lint - image: git.cryptic.systems/volker.raschek/helm:3.16.4 - resources: - limits: - cpu: 150 - memory: 150M - -- 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.5 - resources: - limits: - cpu: 150 - memory: 150M - when: - status: - - changed - - failure - -trigger: - event: - exclude: - - tag - ---- -kind: pipeline -type: kubernetes -name: Unit tests - -clone: - disable: true - -platform: - os: linux - arch: amd64 - -steps: -- name: clone repository - image: git.cryptic.systems/volker.raschek/git:1.4.0 - -- name: helm unittest - commands: - - helm unittest --strict --file 'unittests/**/*.yaml' ./ - image: git.cryptic.systems/volker.raschek/helm:3.16.4 - resources: - limits: - cpu: 150 - memory: 150M - -- 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.5 - resources: - limits: - cpu: 150 - memory: 150M - when: - status: - - changed - - failure - -trigger: - event: - exclude: - - tag - ---- -kind: pipeline -type: kubernetes -name: Generate, compare and lint README.md - -clone: - disable: true - -platform: - os: linux - arch: amd64 - -steps: -- name: clone repository - image: git.cryptic.systems/volker.raschek/git:1.4.0 - -- name: execute NPM modules - commands: - - npm install - - npm run readme:link - - npm run readme:lint - - npm run readme:parameters - image: docker.io/library/node:23.6.0-alpine - resources: - limits: - cpu: 150 - memory: 150M - -- name: detect diff - commands: - - git diff --exit-code --name-only README.md - image: git.cryptic.systems/volker.raschek/git:1.4.0 - -- 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.5 - resources: - limits: - cpu: 150 - memory: 150M - when: - status: - - changed - - failure - -trigger: - event: - exclude: - - tag - -# --- -# kind: pipeline -# type: kubernetes -# name: Release - -# clone: -# disable: true - -# platform: -# os: linux - -# steps: -# - name: clone repository -# image: git.cryptic.systems/volker.raschek/git:1.4.0 - -# - name: release-helm-chart -# commands: -# - helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters -# - helm package --version ${DRONE_TAG} . -# - helm cm-push ${DRONE_REPO_NAME}-${DRONE_TAG}.tgz prometheus-exporters -# environment: -# HELM_REPO_PASSWORD: -# from_secret: helm_repo_password -# HELM_REPO_USERNAME: -# from_secret: helm_repo_username -# image: git.cryptic.systems/volker.raschek/helm:3.16.4 -# resources: -# limits: -# cpu: 150 -# memory: 150M - -# trigger: -# event: -# - tag -# repo: -# - volker.raschek/prometheus-postgres-exporter diff --git a/.gitea/workflows/generate-readme.yaml b/.gitea/workflows/generate-readme.yaml new file mode 100644 index 0000000..e58145b --- /dev/null +++ b/.gitea/workflows/generate-readme.yaml @@ -0,0 +1,30 @@ +name: Generate README + +on: + pull_request: + paths: [ "README.md", "values.yaml" ] + types: [ "opened", "reopened", "synchronize" ] + push: + paths: [ "README.md", "values.yaml" ] + tags-ignore: + - '**' + workflow_dispatch: {} + +jobs: + generate-parameters: + container: + image: docker.io/library/node:22.9.0-alpine + runs-on: + - ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git + - uses: actions/checkout@v4.2.2 + - name: Generate parameter section in README + run: | + npm install + npm run readme:parameters + - name: Compare diff + run: git diff --exit-code --name-only README.md diff --git a/.gitea/workflows/helm.yaml b/.gitea/workflows/helm.yaml new file mode 100644 index 0000000..e1b128c --- /dev/null +++ b/.gitea/workflows/helm.yaml @@ -0,0 +1,40 @@ +name: Helm + +on: + pull_request: + types: [ "opened", "reopened", "synchronize" ] + push: + tags-ignore: + - '**' + workflow_dispatch: {} + +jobs: + helm-lint: + container: + image: docker.io/volkerraschek/helm:3.16.1 + runs-on: + - ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git npm + - uses: actions/checkout@v4.2.2 + - name: Lint helm files + run: | + helm lint --values values.yaml . + + helm-unittest: + container: + image: docker.io/volkerraschek/helm:3.16.1 + runs-on: + - ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git npm + - uses: actions/checkout@v4.2.2 + - name: Unittest + run: | + helm unittest --strict --file 'unittests/**/*.yaml' ./ \ No newline at end of file diff --git a/.gitea/workflows/markdown-linters.yaml b/.gitea/workflows/markdown-linters.yaml new file mode 100644 index 0000000..9046bdc --- /dev/null +++ b/.gitea/workflows/markdown-linters.yaml @@ -0,0 +1,44 @@ +name: Markdown linter + +on: + pull_request: + paths: [ "**/*.md" ] + types: [ "opened", "reopened", "synchronize" ] + push: + paths: [ "**/*.md" ] + tags-ignore: + - '**' + workflow_dispatch: {} + +jobs: + markdown-link-checker: + container: + image: docker.io/library/node:22.9.0-alpine + runs-on: + - ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git + - uses: actions/checkout@v4.2.2 + - name: Verify links in markdown files + run: | + npm install + npm run readme:link + + markdown-lint: + container: + image: docker.io/library/node:22.9.0-alpine + runs-on: + - ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git + - uses: actions/checkout@v4.2.2 + - name: Lint markdown files + run: | + npm install + npm run readme:lint diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..b24bdd8 --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,46 @@ +name: Release + +on: + push: + tags: + - "**" + +jobs: + publish-chart: + container: + image: docker.io/volkerraschek/helm:3.16.1 + runs-on: ubuntu-latest + steps: + - name: Install tooling + run: | + apk update + apk add git npm + - uses: actions/checkout@v4 + - name: Package chart + env: + HELM_REPO_NAME: upload + + CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }} + CHARTMUSEUM_REPOSITORY: ${{ vars.CHARMUSEUM_REPOSITORY }} + CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }} + CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }} + + GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} + GITEA_SERVER_URL: ${{ github.server_url }} + run: | + PACKAGE_VERSION=${GITHUB_REF#refs/tags/} + REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 2) + REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 1) + + helm dependency build + helm package --version "${PACKAGE_VERSION}" ./ + + # chart-museum + helm repo add --username ${CHARTMUSEUM_USERNAME} --password ${CHARTMUSEUM_PASSWORD} chartmuseum https://${CHARTMUSEUM_HOSTNAME}/${CHARTMUSEUM_REPOSITORY} + helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum + helm repo remove chartmuseum + + # gitea + helm repo add --username ${REPOSITORY_OWNER} --password ${GITEA_PACKAGE_REGISTRY_TOKEN} gitea ${GITEA_SERVER_URL}/api/packages/${REPOSITORY_OWNER}/helm + helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz gitea + helm repo remove gitea \ No newline at end of file diff --git a/Makefile b/Makefile index 389616d..6bb1e0e 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,13 @@ CONTAINER_RUNTIME?=$(shell which podman) # HELM_IMAGE HELM_IMAGE_REGISTRY_HOST?=docker.io -HELM_IMAGE_REPOSITORY=volkerraschek/helm +HELM_IMAGE_REPOSITORY?=volkerraschek/helm HELM_IMAGE_VERSION?=3.16.1 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION} # NODE_IMAGE NODE_IMAGE_REGISTRY_HOST?=docker.io -NODE_IMAGE_REPOSITORY=library/node +NODE_IMAGE_REPOSITORY?=library/node NODE_IMAGE_VERSION?=22.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=library/node NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION}