diff --git a/setup.sh b/setup.sh index 9d04558..3096a4d 100755 --- a/setup.sh +++ b/setup.sh @@ -104,3 +104,17 @@ echo "${RUNNER_TOOL_CACHE}/dart-sdk/bin" >> $GITHUB_PATH # Report success, and print version. echo -e "Successfully installed Dart SDK:" ${RUNNER_TOOL_CACHE}/dart-sdk/bin/dart --version + +# When enabled through env variables, create OIDC token for publishing on pub.dev. +if [[ "${ACTIONS_ID_TOKEN_REQUEST_URL}" != "" && "${ACTIONS_ID_TOKEN_REQUEST_TOKEN}" != "" ]] +then + if [[ -x "$(command -v jq)" ]] + then + PUB_TOKEN=$(curl --retry 5 --retry-connrefused -sLS "${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=https://pub.dev" -H "User-Agent: actions/oidc-client" -H "Authorization: Bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" | jq -r '.value') + echo "PUB_TOKEN=${PUB_TOKEN}" >> $GITHUB_ENV + export PUB_TOKEN + ${RUNNER_TOOL_CACHE}/dart-sdk/bin/dart pub token add https://pub.dev --env-var PUB_TOKEN + else + echo "Could not setup OIDC token, 'jq' is not available."; + fi +fi