Skip to content

Project website should link to our documentation (#28) #49

Project website should link to our documentation (#28)

Project website should link to our documentation (#28) #49

name: Release
on:
push:
branches: ['main']
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write # needed to push tag
strategy:
matrix:
node-version: [18.14.2]
steps:
- name: Get repo with depth
uses: actions/checkout@v3
with:
fetch-depth: 0 # needed to calculate version
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
registry-url: 'https://registry.npmjs.org'
- name: 'Install dependencies'
run: npm ci
- name: 'Run build'
run: npm run build
# Setup necessary info to create tag
- name: Set version variable with v, for use in tag and release
run: 'echo "RELEASE_TAG=v$(npm run --silent sdk-version)" >> $GITHUB_ENV'
- name: Configure git username
run: git config user.name github-actions-bot
- name: Configure git user email
run: git config user.email noreply@vipps.no
# Create git tag
- name: Create Tag
run: git tag ${{ env.RELEASE_TAG }} -m ${{ env.RELEASE_TAG }}
- name: Publish Tag
run: git push --tags
# Create git release
- name: 'Create GitHub Release'
uses: 'actions/github-script@v6'
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'
script: |
try {
const response = await github.rest.repos.createRelease({
draft: false,
generate_release_notes: true,
name: process.env.RELEASE_TAG,
owner: context.repo.owner,
prerelease: false,
repo: context.repo.repo,
tag_name: process.env.RELEASE_TAG,
});
core.exportVariable('RELEASE_ID', response.data.id);
core.exportVariable('RELEASE_UPLOAD_URL', response.data.upload_url);
} catch (error) {
core.setFailed(error.message);
}
# Pack Npm package
- name: Create NPM package
run: 'mkdir out && npm pack --pack-destination="./out"'
# Add Npm pack to Github Release Assets
- name: Upload to GitHub release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ env.RELEASE_TAG }}
run: |
gh release upload ${{ env.RELEASE_TAG }} out/* --clobber
# Publish Npm package
- name: Publish Npm package
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}