name: Semantic Release on: push: branches: - main workflow_dispatch: permissions: contents: write issues: write pull-requests: write packages: write jobs: release: name: Semantic Release runs-on: ubuntu-latest if: github.repository == 'christianlouis/DocuElevate' steps: - name: Checkout Code uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' cache: 'pip' - name: Install dependencies run: | python -m pip install --upgrade pip pip install python-semantic-release - name: Configure Git run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" - name: Run Semantic Release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | semantic-release version --print semantic-release version semantic-release publish - name: Update build metadata files if changed run: | for f in VERSION BUILD_DATE GIT_SHA RUNTIME_INFO; do if [ -f "$f" ]; then git add -f "$f" fi done if ! git diff --staged --quiet; then git commit -m "chore(release): update build metadata files [skip ci]" git push fi - name: Trigger Docker Build on Tag if: startsWith(github.ref, 'refs/tags/') uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const ref = context.ref; const tag = ref.replace('refs/tags/', ''); console.log(`New tag created: ${tag}`); console.log('Docker build will be triggered automatically by the docker-build workflow');