Skip to content
Merged
Changes from 26 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
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
87 changes: 87 additions & 0 deletions .github/workflows/ci-typescript.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Compile TypeScript Protobuf Definitions

on: [push]

jobs:
compile:
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "latest"
registry-url: "https://registry.npmjs.org/"
scope: "@blueyerobotics"

- name: Create tsconfig
run: |
cd protobuf_definitions
echo '{
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS",
"declaration": true,
"outDir": "dist",
"strict": true,
"esModuleInterop": true
},
"include": ["./**/*.ts"]
}' > tsconfig.json

- name: Create package
run: |
cd protobuf_definitions
SHORT_SHA=${GITHUB_SHA::8}
echo '{
"name": "@blueyerobotics/protocol-definitions",
"version": "3.2.0-'${SHORT_SHA}'",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": ["dist"],
"scripts": {
"build": "tsc"
},
"dependencies": {
"@bufbuild/protobuf": "^2.5.2"
},
"devDependencies": {
"ts-proto": "^2.7.5",
"typescript": "^5.8.3"
}
}' > package.json

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y protobuf-compiler
cd protobuf_definitions
npm install

- name: Generate
run: |
cd protobuf_definitions
mkdir -p ./out/ &&
protoc *.proto --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./out \
--ts_proto_opt=outputIndex=true --ts_proto_opt=globalThisPolyfill=true

- name: Compile
run: |
cd protobuf_definitions
npm run build

- name: Publish to npm
run: |
cd protobuf_definitions
npm publish --access public --tag latest
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Check npm pack contents
run: |
cd protobuf_definitions
npm pack
tar -tzf *.tgz