Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
socheatsok78 committed May 14, 2024
0 parents commit 9744bb3
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: publish

on:
push:

jobs:
# https://dart.dev/tools/pub/automated-publishing
publish:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: flutter-actions/setup-flutter@v3
- uses: ./
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# About
GitHub Action to configuring credentials for automated publishing of packages to pub.dev
33 changes: 33 additions & 0 deletions action.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

if [[ -z "${ACTIONS_ID_TOKEN_REQUEST_URL}" ]] && [[ -z "${ACTIONS_ID_TOKEN_REQUEST_TOKEN}" ]]; then
echo "==> No GitHub OIDC token found, skipping..."
exit 0
fi

log_group_start() {
echo "::group::${1}"
}
log_group_end() {
echo "::endgroup::"
}

jwtd() {
log_group_start "Decoding JWT data..."
jq -R 'split(".") | .[0],.[1] | @base64d | fromjson' <<< "${1}"
echo "Signature: $(echo "${1}" | awk -F'.' '{print $3}')"
log_group_end
}

INPUT_GITHUB_OIDC_AUDIENCE="https://pub.dev"

echo "Create the OIDC token used for pub.dev publishing..."
GITHUB_OIDC_RESPONSE=$(curl -s -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=${INPUT_GITHUB_OIDC_AUDIENCE}")
GITHUB_OIDC_IDTOKEN=$(jq -r '.value' <<< "${GITHUB_OIDC_RESPONSE}")
export PUB_TOKEN=${GITHUB_OIDC_IDTOKEN}
echo "PUB_TOKEN=${GITHUB_OIDC_IDTOKEN}" >> $GITHUB_ENV

jwtd "$GITHUB_OIDC_IDTOKEN"

echo "The Dart CLI successfully authenticated with the GitHub OIDC token,"
dart pub token add ${INPUT_GITHUB_OIDC_AUDIENCE} --env-var PUB_TOKEN
8 changes: 8 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: "Setup Pub.dev credentials"
description: "Configuring credentials for automated publishing of packages to pub.dev"
runs:
using: "composite"
steps:
- name: Setup Pub.dev credentials
run: $GITHUB_ACTION_PATH/action.sh
shell: bash

0 comments on commit 9744bb3

Please sign in to comment.