mirror of
https://github.com/donpat1to/Schichtenplaner.git
synced 2025-11-30 22:45:46 +01:00
Update docker.yml
This commit is contained in:
27
.github/workflows/docker.yml
vendored
27
.github/workflows/docker.yml
vendored
@@ -21,15 +21,15 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Fetch all history for tags
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Check if main branch
|
- name: Check if main branch
|
||||||
id: branch_check
|
id: branch_check
|
||||||
run: |
|
run: |
|
||||||
if [[ "${GITHUB_REF}" == "refs/heads/main" || "${GITHUB_REF}" == "refs/heads/master" ]]; then
|
if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.ref }}" == "refs/heads/master" ]]; then
|
||||||
echo "is_main_branch=true" >> $GITHUB_OUTPUT
|
echo "is_main=true" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "is_main_branch=false" >> $GITHUB_OUTPUT
|
echo "is_main=false" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Determine next semantic version tag
|
- name: Determine next semantic version tag
|
||||||
@@ -39,24 +39,31 @@ jobs:
|
|||||||
|
|
||||||
# Find latest tag matching vX.Y.Z
|
# Find latest tag matching vX.Y.Z
|
||||||
latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1)
|
latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1)
|
||||||
|
echo "Latest tag found: $latest_tag"
|
||||||
|
|
||||||
if [[ -z "$latest_tag" ]]; then
|
if [[ -z "$latest_tag" ]]; then
|
||||||
major=0
|
major=0
|
||||||
minor=0
|
minor=0
|
||||||
patch=0
|
patch=0
|
||||||
|
echo "No existing tags found, starting from v0.0.0"
|
||||||
else
|
else
|
||||||
version="${latest_tag#v}"
|
version="${latest_tag#v}"
|
||||||
IFS='.' read -r major minor patch <<< "$version"
|
IFS='.' read -r major minor patch <<< "$version"
|
||||||
|
echo "Parsed version: major=$major, minor=$minor, patch=$patch"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${GITHUB_REF}" == "refs/heads/main" || "${GITHUB_REF}" == "refs/heads/master" ]]; then
|
if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.ref }}" == "refs/heads/master" ]]; then
|
||||||
major=$((major + 1))
|
major=$((major + 1))
|
||||||
minor=0
|
minor=0
|
||||||
patch=0
|
patch=0
|
||||||
elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then
|
echo "Main branch - major version bump"
|
||||||
|
elif [[ "${{ github.ref }}" == "refs/heads/development" ]]; then
|
||||||
minor=$((minor + 1))
|
minor=$((minor + 1))
|
||||||
patch=0
|
patch=0
|
||||||
|
echo "Development branch - minor version bump"
|
||||||
else
|
else
|
||||||
patch=$((patch + 1))
|
patch=$((patch + 1))
|
||||||
|
echo "Other branch - patch version bump"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
new_tag="v${major}.${minor}.${patch}"
|
new_tag="v${major}.${minor}.${patch}"
|
||||||
@@ -87,7 +94,6 @@ jobs:
|
|||||||
- name: Run backend tests
|
- name: Run backend tests
|
||||||
working-directory: ./backend
|
working-directory: ./backend
|
||||||
run: |
|
run: |
|
||||||
# Skip tests if jest is not installed
|
|
||||||
if [ -f "node_modules/.bin/jest" ]; then
|
if [ -f "node_modules/.bin/jest" ]; then
|
||||||
npm test
|
npm test
|
||||||
else
|
else
|
||||||
@@ -140,11 +146,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
tags: |
|
tags: |
|
||||||
type=ref,event=branch
|
type=raw,value=${{ needs.set-tag.outputs.tag_name }}
|
||||||
type=semver,pattern={{version}}
|
type=raw,value=latest,enable=${{ fromJSON(needs.set-tag.outputs.is_main_branch) }}
|
||||||
type=sha
|
|
||||||
${{ needs.set-tag.outputs.tag_name }}
|
|
||||||
${{ fromJSON(needs.set-tag.outputs.is_main_branch) && 'latest' || ''}}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
|
|||||||
Reference in New Issue
Block a user