Add workflows
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..2e07484
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,64 @@
+name: Build and Release
+
+on:
+ push:
+ tags:
+ - 'v*'
+ workflow_dispatch:
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '18'
+ cache: 'npm'
+ - run: npm ci
+ - run: npm test
+
+ build:
+ needs: test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '18'
+ cache: 'npm'
+ - run: npm ci
+ - run: mkdir -p bin/linux bin/macos bin/win
+ - name: Build Linux executable
+ run: npm run pkg-linux
+ - name: Build macOS executable
+ run: npm run pkg-macos
+ - name: Build Windows executable
+ run: npm run pkg-win
+ - name: Upload Linux binary
+ uses: actions/upload-artifact@v4
+ with:
+ name: conllu-gender-linux-x64
+ path: bin/linux/conllu-gender
+ if-no-files-found: error
+ - name: Upload macOS binary
+ uses: actions/upload-artifact@v4
+ with:
+ name: conllu-gender-macos-x64
+ path: bin/macos/conllu-gender
+ if-no-files-found: error
+ - name: Upload Windows binary
+ uses: actions/upload-artifact@v4
+ with:
+ name: conllu-gender-win-x64
+ path: bin/win/conllu-gender.exe
+ if-no-files-found: error
+ - name: Create GitHub Release
+ if: startsWith(github.ref, 'refs/tags/')
+ uses: softprops/action-gh-release@v2
+ with:
+ files: |
+ bin/linux/conllu-gender
+ bin/macos/conllu-gender
+ bin/win/conllu-gender.exe
+ generate_release_notes: true