Skip to content

Commit

Permalink
Merge pull request #55 from JarvusInnovations/develop
Browse files Browse the repository at this point in the history
Release: v1.0.1
  • Loading branch information
themightychris authored May 24, 2023
2 parents 3e5e96b + f499d76 commit 7ba783b
Show file tree
Hide file tree
Showing 8 changed files with 235 additions and 406 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Publish npm package

on:
push:
tags: [ 'v*' ]


jobs:
publish-npm:
runs-on: ubuntu-latest
steps:

- uses: actions/setup-node@v1
with:
node-version: '14.x'
registry-url: 'https://registry.npmjs.org'

- uses: actions/checkout@v2

- name: Place tag in environment
run: |
echo "SOURCE_TAG=${GITHUB_REF:10}" >> $GITHUB_ENV
- name: Setting package.json version
run: npm version --no-git-tag-version "${SOURCE_TAG#v}"

- run: npm install

- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
48 changes: 0 additions & 48 deletions .github/workflows/release-deploy.yml

This file was deleted.

107 changes: 7 additions & 100 deletions .github/workflows/release-prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,112 +2,19 @@ name: 'Release: Prepare PR'

on:
push:
branches: [develop]
branches: [ develop ]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_BRANCH: master
permissions:
contents: read
pull-requests: write

jobs:
release-prepare:

runs-on: ubuntu-latest
steps:

- uses: actions/checkout@v2
- uses: JarvusInnovations/infra-components@channels/github-actions/release-prepare/latest
with:
fetch-depth: 0

# - uses: mxschmitt/action-tmate@v3

- name: Create/update pull request
run: |
# get latest release tag
latest_release=$(git describe --tags --abbrev=0 origin/${{ env.RELEASE_BRANCH }})
latest_release_bumped=$(echo $latest_release | awk -F. -v OFS=. '{$NF++;print}')
# create or update PR
pr_body="$(cat <<EOF
Release: ${latest_release_bumped}
## Improvements
## Technical
EOF
)"
pr_number=$(hub pr list -h develop -f '%I')
if [ -n "${pr_number}" ]; then
echo "Updating PR #${pr_number}"
existing_comment_id=$(hub api "/repos/${GITHUB_REPOSITORY}/issues/${pr_number}/comments" | jq '.[] | select(.user.login=="github-actions[bot]") | .id')
else
echo "Opening PR"
hub pull-request -b "${RELEASE_BRANCH}" -h develop -F <(echo "${pr_body}") > /tmp/pr.json
pr_number=$(hub pr list -h develop -f '%I')
echo "Opened PR #${pr_number}"
fi
# build changelog
commits=$(
git log \
--first-parent \
--reverse \
--format="%H" \
"origin/${RELEASE_BRANCH}..develop"
)
changelog=()
while read -r commit; do
subject="$(git show -s --format=%s "${commit}")"
line=""
if [[ "${subject}" =~ Merge\ pull\ request\ \#([0-9]+) ]]; then
line="$(hub pr show -f '%t [%i] @%au' "${BASH_REMATCH[1]}" || true)"
fi
if [ -z "${line}" ]; then
author="$(hub api "/repos/${GITHUB_REPOSITORY}/commits/${commit}" -H Accept:application/vnd.github.v3+json | jq -r '.author.login')"
if [ -n "${author}" ]; then
author="@${author}"
else
author="$(git show -s --format=%ae "${commit}")"
fi
line="${subject} ${author}"
fi
# move ticket number prefix into to existing square brackets at end
line="$(echo "${line}" | perl -pe 's/^([A-Z]+-[0-9]+):?\s*(.*?)\s*\[([^]]+)\]\s*(\S+)$/\2 [\3, \1] \4/')"
# move ticket number prefix into to new square brackets at end
line="$(echo "${line}" | perl -pe 's/^([A-Z]+-[0-9]+):?\s*(.*?)\s*(\S+)$/\2 [\1] \3/')"
# combine doubled square brackets at the end
line="$(echo "${line}" | perl -pe 's/^\s*(.*?)\s*\[([A-Z]+-[0-9]+)\]\s*\[([^]]+)\]\s*(\S+)$/\1 [\3, \2] \4/')"
changelog+=("- ${line}")
done <<< "${commits}"
# create or update comment
comment_body="$(cat <<EOF
## Changelog
\`\`\`markdown
$(IFS=$'\n'; echo "${changelog[*]}")
\`\`\`
EOF
)"
if [ -n "${existing_comment_id}" ]; then
echo "Updating comment #${existing_comment_id}"
hub api "/repos/${GITHUB_REPOSITORY}/issues/comments/${existing_comment_id}" -f body="${comment_body}"
else
echo "Creating comment"
hub api "/repos/${GITHUB_REPOSITORY}/issues/${pr_number}/comments" -f body="${comment_body}"
fi
github-token: ${{ secrets.GITHUB_TOKEN }}
release-branch: master
16 changes: 16 additions & 0 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: 'Release: Publish PR'

on:
pull_request:
branches: [ master ]
types: [ closed ]

jobs:
release-publish:

runs-on: ubuntu-latest
steps:

- uses: JarvusInnovations/infra-components@channels/github-actions/release-publish/latest
with:
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}
30 changes: 5 additions & 25 deletions .github/workflows/release-validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,15 @@ name: 'Release: Validate PR'

on:
pull_request:
branches: [master]
types: [opened, edited, reopened, synchronize]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
branches: [ master ]
types: [ opened, edited, reopened, synchronize ]

jobs:
release-validate:

runs-on: ubuntu-latest
steps:

- name: Grab PR Title
run: |
set -e
PR_TITLE=$(jq -r ".pull_request.title" $GITHUB_EVENT_PATH)
# check title format and extract tag
if [[ "${PR_TITLE}" =~ ^Release:\ v[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$ ]]; then
RELEASE_TAG="${PR_TITLE:9}"
echo "RELEASE_TAG=${RELEASE_TAG}" >> $GITHUB_ENV
else
echo 'PR title must match format "Release: vX.Y.Z(-rc.#)?"'
exit 1
fi
# check that tag doesn't exist
if git ls-remote --exit-code origin "refs/tags/${RELEASE_TAG}"; then
echo "The PR title's version exists already"
exit 1
fi
- uses: JarvusInnovations/infra-components@channels/github-actions/release-validate/latest
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.github/
.holo/
Loading

0 comments on commit 7ba783b

Please sign in to comment.