Files
ti1/.github/workflows/docker-image.yml
pigwin 5b840950c8 v1.0.2
come on plz work for ducks sake
2025-12-23 22:51:20 +01:00

59 lines
1.8 KiB
YAML

name: Build and Publish Docker Image
on:
push:
branches:
- main
- dev
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Get the current timestamp
id: timestamp
run: echo "TIMESTAMP=$(date +%Y%m%d%H%M%S)" >> $GITHUB_ENV
- name: Get commit version
id: commit-version
run: |
COMMIT_MSG=$(git log -1 --pretty=%B | head -n1 | xargs)
echo "Commit message: $COMMIT_MSG" # Debugging output
# Updated regex to handle both vX.Y, vX.Y.Z, and vX.Y-pre-release formats
if [[ "$COMMIT_MSG" =~ ^v[0-9]+\.[0-9]+(\.[0-9]+)?(-[a-zA-Z0-9._-]+)?$ ]]; then
echo "Version match: $COMMIT_MSG"
echo "VERSION=${COMMIT_MSG}" >> $GITHUB_ENV
else
echo "No version match, defaulting to 'dev'"
echo "VERSION=dev" >> $GITHUB_ENV
fi
- name: Build Docker image
run: |
docker build -t ti1:${{ env.VERSION }} .
- name: Push Docker image
run: |
# Always push to 'dev' tag
docker tag ti1:${{ env.VERSION }} ${{ secrets.DOCKER_USERNAME }}/ti1:dev
docker push ${{ secrets.DOCKER_USERNAME }}/ti1:dev
# If the version is valid, also push that specific version tag
if [[ "${{ env.VERSION }}" != "dev" ]]; then
docker tag ti1:${{ env.VERSION }} ${{ secrets.DOCKER_USERNAME }}/ti1:${{ env.VERSION }}
docker push ${{ secrets.DOCKER_USERNAME }}/ti1:${{ env.VERSION }}
fi