aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitea/workflows/build.yaml78
-rw-r--r--.woodpecker/build.yml41
-rw-r--r--.woodpecker/lint.yml41
-rw-r--r--README.md2
4 files changed, 78 insertions, 84 deletions
diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml
new file mode 100644
index 0000000..54891f9
--- /dev/null
+++ b/.gitea/workflows/build.yaml
@@ -0,0 +1,78 @@
+name: "lint, build and push"
+on:
+ schedule:
+ - cron: "5 3 * * SUN"
+ push:
+ branches: [ master ]
+ pull_request:
+
+# Variables: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#default-environment-variables + https://forgejo.org/docs/latest/user/actions/#env-1
+
+jobs:
+ lint:
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Run Gitleaks
+ uses: docker://zricethezav/gitleaks:v8.18.4
+ with:
+ args: detect --no-git --verbose --source ${{ github.workspace }}
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Run hadolint
+ uses: docker://pipelinecomponents/hadolint:0.26.4
+ with:
+ args: hadolint Dockerfile
+# - name: Run ShellCheck
+# uses: sudo-bot/action-shellcheck@latest
+# with:
+# cli-args: "shell.sh"
+ - name: Send notification on error
+ uses: dawidd6/action-send-mail@v3
+ if: failure()
+ with:
+ connection_url: smtp://docker10.mgrote.net:1025
+ secure: false
+ ignore_cert: true
+ to: michael.grote@posteo.de
+ from: Gitea Actions <gitea@mgrote.net>
+ subject: "CI Error in ${{ env.GITHUB_REPOSITORY }}"
+ body: "Job of ${{ env.github.repository }} failed!"
+
+ build:
+ needs: [gitleaks, hadolint] # shellcheck
+ steps:
+ - uses: https://github.com/actions/checkout@v4
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+# - name: Login to Docker Hub
+# uses: docker/login-action@v3
+# with:
+# username: ${{ secrets.DOCKERHUB_USERNAME }}
+# password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Extract repository name
+ id: meta
+ run: |
+ echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
+ - name: Extract branch name
+ shell: bash
+ run: echo "REPO_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
+ id: extract_branch
+ - name: Build and push Docker image
+ uses: https://github.com/docker/build-push-action@v5
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ tags: "registry.mgrote.net/${{ steps.meta.outputs.REPO_NAME }}:latest,registry.mgrote.net/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.extract_branch.outputs.REPO_BRANCH }}"
+ - name: Send notification on error
+ uses: dawidd6/action-send-mail@v3
+ if: failure()
+ with:
+ connection_url: smtp://docker10.mgrote.net:1025
+ secure: false
+ ignore_cert: true
+ to: michael.grote@posteo.de
+ from: Gitea Actions <gitea@mgrote.net>
+ subject: "CI Error in ${{ env.GITHUB_REPOSITORY }}"
+ body: Job of ${{ env.github.repository }} failed!
diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml
deleted file mode 100644
index 181085b..0000000
--- a/.woodpecker/build.yml
+++ /dev/null
@@ -1,41 +0,0 @@
----
-depends_on:
- - lint
-
-clone:
- git:
- image: "woodpeckerci/plugin-git:2.5.2"
- settings:
- depth: 9999 # wird benötigt um die Commits zählen zu können
- lfs: false
- partial: false
-
-steps:
- build_and_push: # damit dieser Step laufen kann muss das Repo in der Woodpecker-GUI "privilegiert" sein
- image: "docker:27.2.0"
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- commands:
- # https://unix.stackexchange.com/questions/748633/error-multiple-platforms-feature-is-currently-not-supported-for-docker-driver
- - docker buildx create --use --platform=linux/amd64 --name multi-platform-builder
- - docker buildx inspect --bootstrap
- - |
- docker buildx build \
- --no-cache \
- --platform=linux/amd64 \
- --push \
- --tag registry.mgrote.net/${CI_REPO_NAME}:${CI_COMMIT_BRANCH} \
- --tag registry.mgrote.net/${CI_REPO_NAME}:latest \
- --label org.opencontainers.image.url=$CI_REPO_URL \
- --label org.opencontainers.image.source=$CI_REPO_URL \
- --label org.opencontainers.image.revision=$CI_COMMIT_SHA \
- --label org.opencontainers.image.created=$DATE \
- --file Dockerfile .
- when:
- - event: [push, pull_request, cron, manual]
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
-...
-
-# händisch:
-# docker build . -t registry.mgrote.net/allzweckcontainer:latest
-# docker push registry.mgrote.net/allzweckcontainer:latest
diff --git a/.woodpecker/lint.yml b/.woodpecker/lint.yml
deleted file mode 100644
index 0e29901..0000000
--- a/.woodpecker/lint.yml
+++ /dev/null
@@ -1,41 +0,0 @@
----
-steps:
- gitleaks:
- image: zricethezav/gitleaks:v8.18.4
- commands:
- - gitleaks detect --no-git --verbose --source $CI_WORKSPACE
- when:
- - event: [push, pull_request, cron]
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
-
- hadolint:
- image: pipelinecomponents/hadolint:0.26.4
- commands:
- - hadolint Dockerfile
- when:
- - event: [push, pull_request, cron]
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
-
- pylint:
- image: "registry.mgrote.net/pylint:master"
- commands:
- - pip3 install --no-cache-dir --break-system-packages -r requirements.txt
- - pylint app.py
- when:
- - event: [push, pull_request, cron]
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
-
- shellcheck:
- image: koalaman/shellcheck-alpine:v0.10.0
- commands:
- - |
- find . -type f -not -path './.git/*' -not -path './collections/*' -exec file {} \; | while IFS= read -r line; do
- if echo "$line" | grep -q "shell script"; then
- file_path=$(echo "$line" | awk -F':' '{print $1}')
- shellcheck "$file_path"
- fi
- done
- when:
- - event: [push, pull_request, cron]
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
-...
diff --git a/README.md b/README.md
index 7e15515..aa8eb2d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,5 @@
# python-api-server
-[![status-badge](https://ci.mgrote.net/api/badges/5/status.svg)](https://ci.mgrote.net/repos/5)
-
a small flask-application for storing and downloading stuff like small binaries
## Variables