diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml new file mode 100644 index 0000000..a49c245 --- /dev/null +++ b/.github/workflows/build-and-release.yml @@ -0,0 +1,87 @@ +name: Build and Release + +on: + push: + branches: + - main + +jobs: + build-and-release: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: "18" + + - name: Install dependencies + run: npm install + env: + NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} + + - name: Build the project + run: npm run build + + - name: Build binaries with pkg + run: npm run build:binaries + + - name: Install jq + run: sudo apt-get install jq + + - name: Get the version from package.json + run: | + export VERSION_TAG=$(jq -r '.version' package.json) + echo "VERSION_TAG=$VERSION_TAG" >> $GITHUB_ENV + echo "RELEASING VERSION $VERSION_TAG" + + - name: Create Release + id: create_release + if: github.ref == 'refs/heads/main' + uses: actions/create-release@v1 + with: + tag_name: ${{ env.VERSION_TAG }} + release_name: v${{ env.VERSION_TAG }} + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Linux Binary (x64) + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./bin/seam-linux-x64 + asset_name: seam-linux-x64-${{ env.VERSION_TAG }} + asset_content_type: application/octet-stream + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload MacOS Binary (x64) + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./bin/seam-macos-x64 + asset_name: seam-macos-x64-${{ env.VERSION_TAG }} + asset_content_type: application/octet-stream + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload MacOS Binary (arm64) + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./bin/seam-macos-arm64 + asset_name: seam-macos-arm64-${{ env.VERSION_TAG }} + asset_content_type: application/octet-stream + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload Windows Binary (x64) + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./bin/seam-win-x64.exe + asset_name: seam-win-x64-${{ env.VERSION_TAG }} + asset_content_type: application/octet-stream + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..dc57493 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN} +@seamapi:registry=https://registry.npmjs.org/ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f7dc723..c117710 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "seam-cli", - "version": "0.0.27", + "version": "0.0.28", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "seam-cli", - "version": "0.0.27", + "version": "0.0.28", "dependencies": { "@seamapi/http": "^0.12.0", "@seamapi/types": "^1.75.0", diff --git a/package.json b/package.json index 95eaccd..7497da7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "cli": "tsx ./cli.ts", "build": "tsup", "postbuild": "ncc build ./dist/cli.cjs -o ./bin && mv ./bin/index.cjs ./bin/seam.cjs", - "build:binaries": "pkg --out-path bin ./bin/seam.cjs", + "build:binaries": "pkg -t node18-macos-arm64,node18-win-x64,node18-linux-x64,node18-macos-x64 --out-path bin ./bin/seam.cjs", "build:binaries:mac": "pkg --out-path bin -t node18-macos-arm64 ./bin/seam.cjs", "format": "prettier --write --ignore-path .gitignore .", "typecheck": "tsc --noEmit"