Update Deepgram SDK #36
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update Deepgram SDK | |
on: | |
schedule: | |
- cron: "0 0 * * 1" # Runs every Monday at midnight | |
workflow_dispatch: | |
jobs: | |
check-update: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.20" | |
- name: Install required tools | |
run: sudo apt-get install -y jq curl | |
- name: Get current Deepgram Go SDK version | |
id: get-deepgram-version | |
run: | | |
DEEPGRAM_VERSION=$(curl -s https://api.github.com/repos/deepgram/deepgram-go-sdk/releases/latest | jq -r '.tag_name') | |
echo "version=$DEEPGRAM_VERSION" >> $GITHUB_ENV | |
- name: Check installed Deepgram SDK version | |
id: check-installed-version | |
run: | | |
INSTALLED_VERSION=$(go list -m -u github.com/deepgram/deepgram-go-sdk | grep deepgram-go-sdk | awk '{print $2}') | |
echo "installed_version=$INSTALLED_VERSION" >> $GITHUB_ENV | |
- name: Config git | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_ACCESS_TOKEN }} | |
run: | | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
git config --global init.defaultBranch main | |
git config --global pull.rebase true | |
git config --global url."https://git:[email protected]".insteadOf "https://github.com" | |
- name: Compare versions and update if necessary | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_ACCESS_TOKEN }} | |
run: | | |
LATEST_VERSION=${{ env.version }} | |
INSTALLED_VERSION=${{ env.installed_version }} | |
if [ "$LATEST_VERSION" != "$INSTALLED_VERSION" ]; then | |
echo "Updating Deepgram SDK from $INSTALLED_VERSION to $LATEST_VERSION" | |
go get github.com/deepgram/deepgram-go-sdk@$LATEST_VERSION | |
# Update go.mod and go.sum | |
go mod tidy | |
git add go.mod go.sum | |
# Create a new branch and commit changes | |
BRANCH_NAME="update-deepgram-sdk-$LATEST_VERSION" | |
git checkout -b "$BRANCH_NAME" | |
git commit -m "chore: update Deepgram SDK to $LATEST_VERSION" | |
# Push the new branch and create a PR | |
git push origin "$BRANCH_NAME" | |
gh pr create --title "chore: update Deepgram SDK to $LATEST_VERSION" --body "This PR updates the Deepgram SDK to version $LATEST_VERSION." --base "main" --head "$BRANCH_NAME" | |
else | |
echo "Deepgram SDK is up to date" | |
fi | |
- name: Install dependencies | |
run: go mod download | |
- name: Run tests | |
env: | |
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }} | |
run: go test -v ./tests | |
- name: Notify on failure | |
if: failure() | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "The tests have FAILED for ${{ github.repository }}." | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Notify on success | |
if: success() | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "The tests have passed for ${{ github.repository }}." | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |