CI: woodpecker CI
This commit is contained in:
parent
23214d7d32
commit
8f91f64d04
3 changed files with 75 additions and 46 deletions
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
|
||||
.git:create_tag:
|
||||
image: alpine:3.21
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
GIT_DEPTH: 0
|
||||
GIT_LFS_SKIP_SMUDGE: 1
|
||||
VERSION: ''
|
||||
TOKEN: '' # Token with push privileges
|
||||
script:
|
||||
- apk add git
|
||||
- git remote set-url origin https://oauth2:$TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH
|
||||
- git tag $VERSION
|
||||
- git push origin tag $VERSION
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
.versioning:gitversion:
|
||||
image:
|
||||
name: mcr.microsoft.com/dotnet/sdk:9.0
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
GIT_DEPTH: 0 # force a deep/non-shallow fetch need by gitversion
|
||||
GIT_LFS_SKIP_SMUDGE: 1
|
||||
cache: [] # caches and before / after scripts can mess things up
|
||||
script:
|
||||
- |
|
||||
dotnet tool install --global GitVersion.Tool --version 5.*
|
||||
export PATH="$PATH:/root/.dotnet/tools"
|
||||
|
||||
dotnet-gitversion -output buildserver
|
||||
|
||||
# We could just collect the output file gitversion.properties (with artifacts:report:dotenv: gitversion.properties as it is already in DOTENV format,
|
||||
# however it contains ~33 variables which unnecessarily consumes many of the 50 max DOTENV variables of the free GitLab version.
|
||||
# Limits are higher for licensed editions, see https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportsdotenv
|
||||
grep 'GitVersion_LegacySemVer=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_SemVer=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_FullSemVer=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_Major=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_Minor=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_Patch=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_MajorMinorPatch=' gitversion.properties >> gitversion.env
|
||||
grep 'GitVersion_BuildMetaData=' gitversion.properties >> gitversion.env
|
||||
artifacts:
|
||||
reports:
|
||||
# propagates variables into the pipeline level
|
||||
dotenv: gitversion.env
|
75
.woodpecker/woodpecker_ci.yml
Normal file
75
.woodpecker/woodpecker_ci.yml
Normal file
|
@ -0,0 +1,75 @@
|
|||
steps:
|
||||
- name: gitversion
|
||||
depends_on: [] # nothing start emititly
|
||||
when:
|
||||
event: push
|
||||
branch: main
|
||||
image: mcr.microsoft.com/dotnet/sdk:9.0
|
||||
environment:
|
||||
CI_TOKEN:
|
||||
from_secret: CI_TOKEN
|
||||
commands:
|
||||
- git remote set-url origin https://CodeByMrFinchum:$CI_TOKEN@code.boxyfoxy.net/$CI_REPO.git
|
||||
- git fetch --unshallow --tags
|
||||
- apt-get update && apt-get install -y jq
|
||||
- dotnet tool install --global GitVersion.Tool --version 5.*
|
||||
- export PATH="$PATH:/root/.dotnet/tools"
|
||||
- dotnet-gitversion -output json > version.json
|
||||
- ls
|
||||
- cat version.json
|
||||
- |
|
||||
echo "GitVersion_SemVer=$(jq -r '.SemVer' version.json)" >> gitversion.env
|
||||
echo "GitVersion_LegacySemVer=$(jq -r '.LegacySemVer' version.json)" >> gitversion.env
|
||||
echo "GitVersion_FullSemVer=$(jq -r '.FullSemVer' version.json)" >> gitversion.env
|
||||
echo "GitVersion_Major=$(jq -r '.Major' version.json)" >> gitversion.env
|
||||
echo "GitVersion_Minor=$(jq -r '.Minor' version.json)" >> gitversion.env
|
||||
echo "GitVersion_Patch=$(jq -r '.Patch' version.json)" >> gitversion.env
|
||||
echo "GitVersion_MajorMinorPatch=$(jq -r '.MajorMinorPatch' version.json)" >> gitversion.env
|
||||
echo "GitVersion_BuildMetaData=$(jq -r '.BuildMetaData' version.json)" >> gitversion.env
|
||||
|
||||
- name: build
|
||||
depends_on: [gitversion]
|
||||
when:
|
||||
event: push
|
||||
branch: main
|
||||
image: python:3.9.21
|
||||
commands:
|
||||
- source gitversion.env
|
||||
- sed -i "s/^__version__ = .*/__version__ = \"$GitVersion_SemVer\"/" src/PyPiUpdater/__init__.py
|
||||
- cat src/PyPiUpdater/__init__.py
|
||||
- python3 -m pip install build
|
||||
- python3 -m build
|
||||
|
||||
- name: release
|
||||
depends_on: [gitversion, build]
|
||||
when:
|
||||
event: push
|
||||
branch: main
|
||||
image: python:3.9.21
|
||||
environment:
|
||||
TWINE_PASSWORD:
|
||||
from_secret: TWINE_API
|
||||
TWINE_USERNAME: "__token__"
|
||||
commands:
|
||||
- ls
|
||||
- python3 -m pip install twine
|
||||
- python3 -m twine upload dist/*
|
||||
|
||||
- name: tag-release
|
||||
depends_on: [gitversion]
|
||||
when:
|
||||
event: push
|
||||
branch: main
|
||||
image: alpine/git
|
||||
environment:
|
||||
CI_TOKEN:
|
||||
from_secret: CI_TOKEN
|
||||
commands:
|
||||
- ls
|
||||
- cat gitversion.env
|
||||
- git config --global user.email "ci@noreply.boxyfoxy.net"
|
||||
- git config --global user.name "CI Bot"
|
||||
- git remote set-url origin https://CodeByMrFinchum:$${CI_TOKEN}@code.boxyfoxy.net/$${CI_REPO}.git
|
||||
- source gitversion.env
|
||||
- git tag $GitVersion_SemVer
|
||||
- git push origin tag $GitVersion_SemVer
|
Loading…
Add table
Add a link
Reference in a new issue