Skip to content

feat(dx): Docker release #115

feat(dx): Docker release

feat(dx): Docker release #115

Workflow file for this run

name: semantic-release-versioning
on:
push:
branches:
- main
- docker_release
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write # semantic-release still needs these
issues: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # semantic-release needs full history + tags
persist-credentials: false
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
working-directory: ./server
run: bun install
- name: Run semantic-release
working-directory: ./server
env:
HUSKY: 0
GITHUB_TOKEN: ${{ secrets.XYNE_GH_TOKEN }}
GH_TOKEN: ${{ secrets.XYNE_GH_TOKEN }}
run: bunx semantic-release --no-ci
- name: Extract release version
id: get_version
if: steps.semantic.outputs.new_release_published == 'true'
run: echo "version=${{ steps.semantic.outputs.new_release_version }}" >> $GITHUB_OUTPUT
- name: Log in to Docker Hub
if: steps.semantic.outputs.new_release_published == 'true'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
if: steps.semantic.outputs.new_release_published == 'true'
uses: docker/build-push-action@v6
with:
# Adjust if your Dockerfile is inside ./server
context: ../../
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/xynehq/staging:latest
${{ secrets.DOCKERHUB_USERNAME }}/xynehq/staging:${{ steps.get_version.outputs.version }}