70 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Release Workflow
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     tags:
 | |
|       - 'v*'
 | |
| 
 | |
| jobs:
 | |
|   route:
 | |
|     runs-on: ubuntu-latest
 | |
|     outputs:
 | |
|       provider: ${{ steps.provider.outputs.provider }}
 | |
|       gitea_ref_name: ${{ steps.provider.outputs.gitea_ref_name }}
 | |
|       gitea_server_url: ${{ steps.provider.outputs.gitea_server_url }}
 | |
|       gitea_repository: ${{ steps.provider.outputs.gitea_repository }}
 | |
|     steps:
 | |
|       - name: Checkout Repository
 | |
|         uses: actions/checkout@v3
 | |
| 
 | |
|       - name: Debug Environment
 | |
|         run: |
 | |
|           echo "CI Environment Details:"
 | |
|           echo "GITHUB_ACTIONS=${GITHUB_ACTIONS:-not set}"
 | |
|           echo "GITEA_ACTIONS=${GITEA_ACTIONS:-not set}"
 | |
|           echo "GITEA_REPOSITORY=${GITEA_REPOSITORY:-not set}"
 | |
|           echo "GITEA_SERVER_URL=${GITEA_SERVER_URL:-not set}"
 | |
|           echo "RUNNER_NAME=${RUNNER_NAME:-not set}"
 | |
| 
 | |
|       - name: Determine CI Provider
 | |
|         id: provider
 | |
|         shell: bash
 | |
|         run: |
 | |
|           if [ -n "${GITEA_ACTIONS}" ] || [ -n "${GITEA_REPOSITORY}" ] || [[ "${RUNNER_NAME}" == *"gitea"* ]]; then
 | |
|             echo "provider=gitea" >> "$GITHUB_OUTPUT"
 | |
|             echo "gitea_ref_name=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
 | |
|             echo "gitea_server_url=${GITHUB_SERVER_URL}" >> "$GITHUB_OUTPUT"
 | |
|             echo "gitea_repository=${GITHUB_REPOSITORY}" >> "$GITHUB_OUTPUT"
 | |
|           elif [ "${GITHUB_ACTIONS}" = "true" ]; then
 | |
|             echo "provider=github" >> "$GITHUB_OUTPUT"
 | |
|           else
 | |
|             echo "provider=unknown" >> "$GITHUB_OUTPUT"
 | |
|           fi
 | |
| 
 | |
|   verify-provider:
 | |
|     needs: route
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Echo detected provider
 | |
|         run: |
 | |
|           echo "Detected CI Provider: ${{ needs.route.outputs.provider }}"
 | |
|           if [ "${{ needs.route.outputs.provider }}" = "unknown" ]; then
 | |
|             echo "::error::Failed to detect CI provider!"
 | |
|             exit 1
 | |
|           fi
 | |
| 
 | |
|   github-release:
 | |
|     needs: [route, verify-provider]
 | |
|     if: needs.route.outputs.provider == 'github'
 | |
|     uses: ./.github/workflows/providers/github-release.yml
 | |
| 
 | |
|   gitea-release:
 | |
|     needs: [route, verify-provider]
 | |
|     if: needs.route.outputs.provider == 'gitea'
 | |
|     uses: ./.github/workflows/providers/gitea-release.yml
 | |
|     with:
 | |
|       gitea_ref_name: ${{ needs.route.outputs.gitea_ref_name }}
 | |
|       gitea_server_url: ${{ needs.route.outputs.gitea_server_url }}
 | |
|       gitea_repository: ${{ needs.route.outputs.gitea_repository }}
 | |
|     secrets:
 | |
|       GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} |