Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions .github/workflows/github-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: Publish package to Github

on:
workflow_dispatch:

jobs:
update-release-branch:
runs-on: ubuntu-latest

steps:
- name: Checkout the repository
uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: "npm"
node-version: "21.7.3"

- name: Update release branch
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"

# Check out or create the 'release' branch
git checkout -B release

# Merge changes from 'main' into 'release'
git merge main --no-edit

git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git

# Push the updated release branch
git push origin release

run-semantic-release:
needs: update-release-branch
runs-on: ubuntu-latest

steps:
- name: Checkout the release branch
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: "npm"
node-version: "21.7.3"

- name: Force branch to release
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"

git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git

git pull

echo "Current branch:"
git branch --show-current

git checkout release

echo "Current branch:"
git branch --show-current

- name: Show current branches
run: git branch -a

- name: Show current remotes
run: git remote -v

- name: Reconfigure git to use HTTP authentication
run: git config --global url."https://${{ secrets.INST_TOKEN }}@github.com/".insteadOf ssh://[email protected]/

- name: Install dependencies
run: npm ci
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}

- name: Run build
run: npm run build
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}

- name: Create version
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
run: npm version patch

- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
run: npm publish

- name: Commit and push changes
run: |
git add -A
git commit -m "chore(release): update release branch [skip ci]" || echo "No changes to commit"
git push origin release || echo "No changes to push"

create-pr:
needs: run-semantic-release
runs-on: ubuntu-latest

steps:
- name: Checkout the release branch
uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
persist-credentials: false

- name: Set email and name for git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git

git pull

- name: Create pull request
run: gh pr create -B main -H release --title 'Merge release into main [skip ci]' --body 'This PR syncs the changes from the release branch back into the main branch.'
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
@contentstack:registry=https://npm.pkg.github.com
Loading