Skip to content

chore: bump v0.9.48 for stack release #14

chore: bump v0.9.48 for stack release

chore: bump v0.9.48 for stack release #14

name: Release stack image
on:
push:
tags:
- 'v*.*.*'
- 'stack-v*.*.*'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
packages: write
jobs:
release-image:
runs-on: [self-hosted, linux, x64]
env:
GHCR_TOKEN: ${{ secrets.GHCR_TOKEN || github.token }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Validate stack release contract
id: release
shell: bash
run: |
python -m json.tool stack.release.json >/dev/null
python - <<'PY2' >> "$GITHUB_OUTPUT"
import json
rel = json.load(open('stack.release.json'))
assert rel.get('schemaVersion') == 1, 'schemaVersion must be 1'
assert rel.get('version'), 'version required'
assert rel.get('image', '').endswith(':v' + rel['version']), 'image must use stack release tag'
assert rel.get('stackParticipation', {}).get('health'), 'health checks required'
assert rel.get('stackParticipation', {}).get('smokeTests'), 'smoke tests required'
print('stack_version=' + rel['version'])
print('image=' + rel['image'])
PY2
- name: Login to GHCR
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ env.GHCR_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Build image
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
context: .
file: packages/twenty-docker/twenty/Dockerfile
push: true
tags: |
${{ steps.release.outputs.image }}
ghcr.io/askexe/exe-crm:sha-${{ github.sha }}
labels: |
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.version=${{ steps.release.outputs.stack_version }}
- name: Report image publish status
run: |
docker manifest inspect "${{ steps.release.outputs.image }}" >/dev/null
echo "Published and verified ${{ steps.release.outputs.image }}"