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
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist/
docs/
node_modules/
.github/
.idea/
28 changes: 28 additions & 0 deletions .github/release-drafter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name-template: '$RESOLVED_VERSION'
tag-template: '$RESOLVED_VERSION'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
categories:
- title: 'Features'
labels:
- 'feature'
- 'enhancement'
- title: 'Bug Fixes'
labels:
- 'fix'
- 'bugfix'
- 'bug'
- title: 'Maintenance'
label: 'chore'
version-resolver:
major:
labels:
- 'major'
minor:
labels:
- 'minor'
patch:
labels:
- 'patch'
default: patch
template: |
$CHANGES
61 changes: 61 additions & 0 deletions .github/workflows/asset-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Asset publish

on:
release:
types:
- published

jobs:
publish-assets:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.release.tag_name }}

- uses: actions/setup-node@v2-beta
with:
node-version: '12'

- name: Build
run: npm install && npm run build

- name: Install pkg
run: npm install -g pkg

- name: Build Asset
run: pkg -o kafka-client --options no-warnings .

- name: Upload Linux cli
id: upload-linux-cli
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./kafka-client-linux
asset_name: kafka-client-linux
asset_content_type: application/octet-stream

- name: Upload MacOS cli
id: upload-macos-cli
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./kafka-client-macos
asset_name: kafka-client-macos
asset_content_type: application/octet-stream

- name: Upload Alpine cli
id: upload-alpine-cli
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./kafka-client-alpine
asset_name: kafka-client-alpine
asset_content_type: application/octet-stream
73 changes: 73 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Release

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the main branch
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
verify:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v2-beta
with:
node-version: '12'

- name: Verify
run: |
npm install
npm run build

release:
if: ${{ github.event_name == 'push' }}
needs: verify
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v2

# Drafts your next Release notes as Pull Requests are merged into "main"
- name: Create release
id: create-release
uses: release-drafter/release-drafter@v5
with:
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
config-name: release-drafter.yaml
publish: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/setup-node@v2-beta
with:
node-version: '12'

- name: Update package.json
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
npm version ${{ steps.create-release.outputs.tag_name }}

- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Publish release
id: publish-release
uses: release-drafter/release-drafter@v5
with:
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
config-name: release-drafter.yaml
publish: true
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM quay.io/ibmgaragecloud/node:lts-stretch

WORKDIR /client

COPY . .

RUN npm install --unsafe-perm && npm run build

ENTRYPOINT ["/client/kafka-client"]
9 changes: 9 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@
"bin": {
"kafka-client": "dist/lib/index.js"
},
"pkg": {
"scripts": "dist/lib/index.js",
"assets": "dist/**/*",
"targets": [
"node12-linux-x64",
"node12-macos-x64",
"node12-alpine-x64"
]
},
"dependencies": {
"babel-jest": "^27.0.6",
"fs-extra": "^10.0.0",
Expand Down