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/github-release.yml gitea-release: needs: [route, verify-provider] if: needs.route.outputs.provider == 'gitea' uses: ./.github/workflows/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 }}