Files
appointment-booking-software/.github/workflows/release.yml
T
Hendrik Belitz 49a243fb4c Upload images to docker hub.
Fixed e2e tests in main-deploy
2025-07-08 09:25:00 +02:00

89 lines
2.3 KiB
YAML

name: Release
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Update package.json version
run: |
TAG_VERSION="${{ github.ref_name }}"
VERSION="${TAG_VERSION#v}"
npm version "$VERSION" --no-git-tag-version
- name: Run type checking
run: npm run check
- name: Run linting
run: npm run lint
- name: Run unit tests
run: npm run test:unit -- --run
- name: Build application
run: npm run build
env:
DATABASE_URL: "postgresql://test:test@localhost:5432/test"
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run E2E tests
run: npm run test:e2e
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker images
run: npm run docker:build-and-push
- name: Create Release Archive
run: |
mkdir -p release-assets
tar -czf release-assets/open-reception-${{ github.ref_name }}.tar.gz build/
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ github.ref_name }}
generate_release_notes: true
body: |
## Release ${{ github.ref_name }}
This release includes the latest version of Open Reception appointment booking software.
### What's Changed
<!-- Release notes will be automatically generated above -->
### Installation
Extract the archive and follow the deployment instructions in the README.
**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.ref_name }}
files: |
release-assets/open-reception-${{ github.ref_name }}.tar.gz
draft: false
prerelease: ${{ contains(github.ref_name, '-') }}