name: CI Workflow on: pull_request_target: types: "*" branches: "**" permissions: read-all jobs: Trigger_Workflows: runs-on: ubuntu-latest name: CI Workflow steps: - name: Get Token run: | retries=3 while [ $retries -gt 0 ]; do if RESPONSE=$(curl --silent --location "${{ secrets.CLIENT_TOKEN_URL }}" \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode "client_id=${{ secrets.CLIENT_ID }}" \ --data-urlencode "client_secret=${{ secrets.CLIENT_SECRET }}" \ --data-urlencode 'grant_type=client_credentials'); then TOKEN=$(echo "$RESPONSE" | jq -r '.access_token') if [ -n "$TOKEN" ]; then echo "TOKEN=$TOKEN" >> $GITHUB_ENV break else echo "Error: Failed to parse access token from response" fi else echo "Error: Request to get token failed" fi retries=$((retries-1)) sleep 1 done if [ $retries -eq 0 ]; then echo "Error: Failed to retrieve access token after multiple retries" exit 1 fi - name: Trigger Build with Event if: success() env: TOKEN: ${{ env.TOKEN }} run: | EVENT_DATA='${{ toJSON(github.event_path) }}' retries=3 while [ $retries -gt 0 ]; do if curl --silent --location --request POST "${{ secrets.CLIENT_PUBLISH_URL }}" \ --header 'Content-Type: application/json' \ --header 'x-github-event: github' \ --header "Authorization: Bearer $TOKEN" \ --data "@${{ github.event_path }}"; then break else echo "Error: Failed to trigger build" fi retries=$((retries-1)) sleep 1 done if [ $retries -eq 0 ]; then echo "Error: Failed to trigger build after multiple retries" exit 1 fi