Update Deepgram SDK #7
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 github.com/deepgram/deepgram-go-sdk | cut -d' ' -f2) | |
echo "installed_version=$INSTALLED_VERSION" >> $GITHUB_ENV | |
- name: Compare versions and update if necessary | |
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" | |
git checkout -b update-deepgram-sdk | |
go get github.com/deepgram/deepgram-go-sdk@$LATEST_VERSION | |
# Update go.mod and go.sum | |
go mod tidy | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
git add go.mod go.sum | |
# Check if there are changes to commit | |
if git diff-index --quiet HEAD --; then | |
echo "No changes to commit" | |
else | |
git commit -m "chore: update Deepgram SDK to $LATEST_VERSION" | |
# Pull the remote branch before pushing | |
git pull --rebase origin update-deepgram-sdk | |
git push origin update-deepgram-sdk | |
fi | |
else | |
echo "Deepgram SDK is up to date" | |
fi | |
- name: Create pull request | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
PR_URL=$(curl -s -X POST -H "Authorization: token $GITHUB_TOKEN" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
https://api.github.com/repos/${{ github.repository }}/pulls \ | |
-d "{\"title\":\"chore: update Deepgram SDK to $LATEST_VERSION\",\"head\":\"update-deepgram-sdk\",\"base\":\"main\"}" \ | |
| jq -r '.html_url') | |
if [ "$PR_URL" = "null" ]; then | |
echo "Pull request creation failed" | |
exit 1 | |
else | |
echo "Pull request created: $PR_URL" | |
fi | |
- name: Install dependencies | |
run: go mod download | |
- name: Run tests | |
id: 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 }} |