Build and Publish Dry Run libpq-query no windows π #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Publish Dry Run libpq-query no windows π | |
on: | |
workflow_dispatch: | |
jobs: | |
make-release-candidate: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository π₯ | |
uses: actions/checkout@v4 | |
- name: Setup Node.js π | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
cache: 'yarn' | |
build-artifacts: | |
needs: make-release-candidate | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest] | |
steps: | |
- name: Checkout Repository π₯ | |
uses: actions/checkout@v4 | |
- name: Setup Node.js π | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
cache: 'yarn' | |
- name: Install and Build π¦ | |
run: | | |
yarn | |
yarn binary:build | |
- name: Save Artifacts For Supabase CDN π | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-supabase-artifact-${{ matrix.os }} | |
path: './build/stage/libpg-query-node/' | |
- name: Save Artifacts For NPM π | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-npm-artifact-${{ matrix.os }} | |
path: | | |
${{ matrix.os == 'macos-latest' && './libpg_query/osx/libpg_query.a' || | |
matrix.os == 'ubuntu-latest' && './libpg_query/linux/libpg_query.a' }} | |
build-wasm: | |
needs: build-artifacts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository π₯ | |
uses: actions/checkout@v4 | |
- name: Setup Node.js π | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
cache: 'yarn' | |
- name: Install and Build π | |
run: | | |
yarn | |
- name: Install Emscripten βπ» | |
run: | | |
sudo apt-get update | |
sudo apt-get install cmake python3 python3-pip | |
git clone --branch 3.1.59 --depth 1 https://github.com/emscripten-core/emsdk.git | |
cd emsdk | |
./emsdk install 3.1.59 | |
./emsdk activate 3.1.59 | |
source ./emsdk_env.sh | |
- name: Build with Emscripten π | |
run: | | |
source ./emsdk/emsdk_env.sh | |
emmake make | |
emmake make build | |
- name: Archive production artifacts π | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wasm-artifacts | |
path: wasm | |
prepare-and-publish: | |
needs: build-wasm | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository π₯ | |
uses: actions/checkout@v4 | |
- name: Get Artifacts π | |
uses: actions/download-artifact@v4 | |
with: | |
path: downloaded-artifacts | |
- name: Prepare artifacts π¦ | |
run: | | |
find ./downloaded-artifacts/ | |
cp ./downloaded-artifacts/build-npm-artifact-ubuntu-latest/libpg_query.a ./libpg_query/linux/libpg_query.a | |
cp ./downloaded-artifacts/build-npm-artifact-macos-latest/libpg_query.a ./libpg_query/osx/libpg_query.a | |
cp ./downloaded-artifacts/wasm-artifacts/libpg-query.js ./wasm/libpg-query.js | |
cp ./downloaded-artifacts/wasm-artifacts/libpg-query.wasm ./wasm/libpg-query.wasm | |
rm -rf ./downloaded-artifacts | |
# - name: Setup AWS CLI | |
# run: sudo apt-get update && sudo apt-get install awscli -y | |
# - name: Configure AWS Credentials | |
# uses: aws-actions/configure-aws-credentials@v4 | |
# with: | |
# aws-access-key-id: ${{ secrets.SUPABASE_AWS_KEY }} | |
# aws-secret-access-key: ${{ secrets.SUPABASE_AWS_SECRET }} | |
# aws-region: us-east-1 | |
# - name: List Bucket Contents | |
# run: aws s3 ls s3://supabase-public-artifacts-bucket/ | |
# - name: Publish to NPM π | |
# run: | | |
# npm publish | |
# env: | |
# NODE_AUTH_TOKEN: ${{secrets.NPM_API_KEY}} |