Skip to content

Commit

Permalink
autobump wip
Browse files Browse the repository at this point in the history
  • Loading branch information
leordev committed Aug 14, 2024
1 parent 2a29a0c commit 084c73b
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 8 deletions.
108 changes: 102 additions & 6 deletions .github/workflows/bump-implementations.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test Spec Implementation Repos
name: Bump Released Spec in SDKs Repos

# Parse the CI output status and make a markdown summary

Expand All @@ -9,16 +9,13 @@ name: Test Spec Implementation Repos

on:
push:
branches:
- leordev/test-implementations
tags:
- "v*.*.*"
workflow_dispatch:
inputs:
tag:
description: "Tag (must follow pattern vN.N.N)"
required: true
default: "v1.0.0"
type: string

jobs:
Expand Down Expand Up @@ -52,8 +49,8 @@ jobs:

runs-on: ubuntu-latest
steps:
- name: Get workflow tag
id: get-tag
- name: Prepare workflow values
id: values
run: |
TAG=${{ github.event.inputs.tag || github.ref_name }}
echo "Processing tag: $TAG"
Expand All @@ -65,3 +62,102 @@ jobs:
fi
echo "TAG=${TAG}" >> $GITHUB_OUTPUT
SPEC_REF=tbd-ci-cd-robot/spec-bump
echo "SPEC_REF=${SPEC_REF}" >> $GITHUB_OUTPUT
- name: Generate an access token to write to downstream repo
uses: actions/create-github-app-token@2986852ad836768dfea7781f31828eb3e17990fa # v1.6.2
id: app-token
with:
app-id: ${{ secrets.CICD_ROBOT_GITHUB_APP_ID }}
private-key: ${{ secrets.CICD_ROBOT_GITHUB_APP_PRIVATE_KEY }}
owner: TBD54566975
repositories: ${{ matrix.repo }}

- name: Checkout spec repository
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
repository: TBD54566975/${{ matrix.repo }}
ref: main
submodules: true
# persist-credentials: false

- name: Update spec submodule in ${{ matrix.repo }}
id: bump
run: |
# initialize configs and vars
SPEC_REF=${{ steps.values.outputs.SPEC_REF }}
TAG=${{ steps.values.outputs.TAG }}
REPO_ROOT=$(pwd)
git config user.name "tbd-ci-cd-robot[bot]"
git config user.email "${{ secrets.CICD_ROBOT_GITHUB_APP_ID }}+tbd-ci-cd-robot[bot]@users.noreply.github.com"
echo "Current directory: $(pwd)"
# check if $SPEC_REF exists
echo "Checking if $SPEC_REF exists..."
if git ls-remote --exit-code origin $SPEC_REF; then
echo "$SPEC_REF exists, checking out..."
git fetch origin $SPEC_REF
git checkout $SPEC_REF || { echo "Failed to checkout $SPEC_REF"; exit 1; }
else
echo "$SPEC_REF doesn't exist, creating new branch..."
git checkout -b $SPEC_REF || { echo "Failed to create new branch $SPEC_REF"; exit 1; }
fi
# bumps the spec submodule
echo "Bumping spec submodule to $TAG..."
cd ${{ matrix.spec_path }}
echo "Updating submodule..."
git submodule update --init --recursive
echo "Fetching tags..."
git fetch --all --tags
echo "Checking out $TAG..."
git checkout $TAG
# commit changes and push
echo "Checking changes to commit..."
cd $REPO_ROOT
# only commit if needed
if git status --porcelain | grep -q '^.M'; then
git add .
git commit -m "Bump tbdex spec to $TAG"
git push origin $SPEC_REF
echo "Changes committed and pushed to $SPEC_REF"
echo "PUSHED=true" >> $GITHUB_OUTPUT
else
echo "No changes to commit"
fi
- name: Manage autobump PR with the Changes
uses: actions/github-script@v6
if: ${{ steps.bump.outputs.PUSHED == 'true' }}
with:
github-token: ${{ steps.app-token.outputs.token }}
script: |
const head = "${{ steps.values.outputs.SPEC_REF }}"
const owner = "TBD54566975"
const { data: prs } = await github.rest.pulls.list({
owner,
head,
repo: "${{ matrix.repo }}",
state: "open",
});
if (prs.length === 0) {
console.info("No PR found, creating one...");
const createdPr = await github.rest.pulls.create({
owner,
head,
repo: "tbdex-js",
title: "Autobump tbdex spec",
body: "Automated PR to remind the team to bump the tbdex spec.\n\nCode owners, please address all the spec changes in this PR until the tests vectors are green.",
base: "main",
});
console.info({ createdPr })
} else {
console.info("PR found, skipping creation since CI will be triggered from the pushed commit above...");
}
3 changes: 1 addition & 2 deletions .github/workflows/test-implementations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,7 @@ jobs:
private-key: ${{ secrets.CICD_ROBOT_GITHUB_APP_PRIVATE_KEY }}
owner: TBD54566975
repositories: ${{ matrix.repo }}

# - name: Checkout spec repository
# - name: Checkout spec repository
# uses: actions/checkout@v4
# with:
# token: ${{ steps.app-token.outputs.token }}
Expand Down

0 comments on commit 084c73b

Please sign in to comment.