From f5cfee0d3c7e5d41d41037a4a9502befb24f5356 Mon Sep 17 00:00:00 2001 From: Jared Casey Date: Fri, 19 Jul 2024 15:50:09 -0500 Subject: [PATCH] prebuild workflow updates --- .github/workflows/prebuilds.yml | 135 +++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) diff --git a/.github/workflows/prebuilds.yml b/.github/workflows/prebuilds.yml index 93ddd69..e1e008e 100644 --- a/.github/workflows/prebuilds.yml +++ b/.github/workflows/prebuilds.yml @@ -87,4 +87,137 @@ jobs: retention-days: 1 name: couchnode-columnar-${{ inputs.version }}-sdist path: | - ./sdist/*.tgz \ No newline at end of file + ./sdist/*.tgz + - name: Set npm pack requirements + run: | + mkdir npmpack-reqs + cd npmpack-reqs + cp ../tsconfig.json . + cp -r ../lib . + cp ../.npmignore . + ls -alh + - uses: actions/upload-artifact@v4 + with: + retention-days: 1 + name: couchnode-columnar-${{ inputs.version }}-npmpack-reqs + path: | + ./npmpack-reqs + + linux_x86_64_prebuild: + runs-on: ubuntu-20.04 + needs: sdist + steps: + - uses: actions/download-artifact@v4 + with: + name: couchnode-columnar-${{ inputs.version }}-sdist + - uses: actions/download-artifact@v4 + with: + name: couchnode-columnar-${{ inputs.version }}-npmpack-reqs + - name: Extract sdist source + run: | + ls -alh + tar -xvzf couchbase-columnar-$COUCHNODE_COLUMNAR_VERSION.tgz + cp -r package/** . + rm -rf package + env: + COUCHNODE_COLUMNAR_VERSION: ${{ inputs.version }} + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "18.x" + - name: Confirm Node version + run: node --version + - name: Install dependencies + run: | + npm install --ignore-scripts + - name: Build binary + run: | + npm run prebuild -- --use-boringssl + - name: Reduce prebuild size + run: | + cd build/Release + ls -alh + cp couchbase_impl.node couchbase_impl.orig.node + objcopy --strip-debug --strip-unneeded couchbase_impl.node + ls -alh + cd ../.. + mv build/Release/couchbase_impl.node . + rm -rf build + mkdir -p build/Release + mv couchbase_impl.node build/Release + - name: Create package + id: create_package + run: | + npm run prepare + npm pack + ls -alh + PKG_NAME=$(find . -name '*.tgz' | cut -c 3-) + echo "package_name=${PKG_NAME}" >> "$GITHUB_OUTPUT" + mkdir output + mv $PKG_NAME output + - uses: actions/upload-artifact@v4 + with: + retention-days: 1 + name: ${{ steps.create_package.outputs.package_name }} + path: | + ./output/${{ steps.create_package.outputs.package_name }} + + macos_arm64_prebuild: + runs-on: macos-14 + needs: sdist + steps: + - uses: actions/download-artifact@v4 + with: + name: couchnode-columnar-${{ inputs.version }}-sdist + - uses: actions/download-artifact@v4 + with: + name: couchnode-columnar-${{ inputs.version }}-npmpack-reqs + - name: Extract sdist source + run: | + ls -alh + tar -xvzf couchbase-columnar-$COUCHNODE_COLUMNAR_VERSION.tgz + cp -r package/** . + rm -rf package + env: + COUCHNODE_COLUMNAR_VERSION: ${{ inputs.version }} + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "18.x" + - name: Confirm Node version + run: node --version + - name: Install dependencies + run: | + npm install --ignore-scripts + - name: Build binary + run: | + npm run prebuild -- --use-boringssl + - name: Reduce prebuild size + run: | + cd build/Release + ls -alh + cp couchbase_impl.node couchbase_impl.orig.node + xcrun strip -Sx couchbase_impl.node + ls -alh + cd ../.. + mv build/Release/couchbase_impl.node . + rm -rf build + mkdir -p build/Release + mv couchbase_impl.node build/Release + - name: Create package + id: create_package + run: | + ls -alh + npm run prepare + npm pack + ls -alh + PKG_NAME=$(find . -name '*.tgz' | cut -c 3-) + echo "package_name=${PKG_NAME}" >> "$GITHUB_OUTPUT" + mkdir output + mv $PKG_NAME output + - uses: actions/upload-artifact@v4 + with: + retention-days: 1 + name: ${{ steps.create_package.outputs.package_name }} + path: | + ./output/${{ steps.create_package.outputs.package_name }}