Skip to content

Merge pull request #27 from databox/update-package-info #17

Merge pull request #27 from databox/update-package-info

Merge pull request #27 from databox/update-package-info #17

Workflow file for this run

name: Publish SDK
on:
push:
branches:
- master
paths:
- 'src/**'
jobs:
release_draft:
name: Create release draft
runs-on: ubuntu-latest
outputs:
release_body: ${{ steps.create_release_draft.outputs.body }}
release_tag: ${{ steps.create_release_draft.outputs.tag_name }}
release_html_url: ${{ steps.create_release_draft.outputs.html_url }}
release_id: ${{ steps.create_release_draft.outputs.id }}
steps:
- name: "Create release draft"
id: create_release_draft
uses: release-drafter/release-drafter@v6
with:
commitish: master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build:
name: Build and publish SDK package
runs-on: ubuntu-latest
needs: release_draft
timeout-minutes: 15
permissions:
contents: read
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: 'https://registry.npmjs.org'
- name: Install packages
run: |
npm install
working-directory: ./src
- name: Build package
run: npm run build
working-directory: ./src
- name: Publish package
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_API_TOKEN}}
working-directory: ./src
release_publish:
name: Publish release
runs-on: ubuntu-latest
needs:
- release_draft
- build
steps:
- name: "Publish release"
uses: eregon/publish-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ needs.release_draft.outputs.release_id }}
post_slack_job:
name: Post info to Slack in #engeering-releases channel
needs:
- release_draft
- release_publish
runs-on: ubuntu-latest
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
steps:
- name: Format to Slack msg
uses: LoveToKnow/[email protected]
id: slack_msg_converter
with:
text: ${{needs.release_draft.outputs.release_body}}
- name: Post to a Slack channel
if: success()
id: slack
uses: slackapi/[email protected]
with:
channel-id: 'C027FC31SVD'
payload: |
{
"text": "New version post",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "New <${{ github.server_url }}/${{ github.repository }}|`${{ github.repository }}`> release <${{ github.server_url }}/${{ github.repository }}/releases/${{ needs.create_release_draft_job.outputs.release_tag }}|${{ needs.create_release_draft_job.outputs.release_tag }}> is available! :tada:"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ${{toJSON(steps.slack_msg_converter.outputs.text)}}
}
}
]
}