Skip to content

publish_binary

publish_binary #4

Workflow file for this run

name: Dejavu - Node.js Build and Release Workflow
on:
release:
types: [published]
repository_dispatch:
types: [publish_binary] # Adjusted to match your event_type
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository with submodules
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Set up Node.js 20 LTS
uses: actions/setup-node@v3
with:
node-version: '20'
cache: 'yarn'
- name: Install dependencies
run: yarn
- name: Extract version from payload
id: get_version
if: ${{ github.event_name == 'repository_dispatch' }}
run: echo "version=${{ github.event.client_payload.version }}" >> $GITHUB_OUTPUT
- name: Get Version For Release
id: get_version_release
if: ${{ github.event_name != 'repository_dispatch' }}
uses: battila7/[email protected]
- name: Determine Version
id: set_version
run: |
if [ -n "${{ steps.get_version.outputs.version }}" ]; then
echo "version=${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT
elif [ -n "${{ steps.get_version_release.outputs.version }}" ]; then
echo "version=${{ steps.get_version_release.outputs.version }}" >> $GITHUB_OUTPUT
else
echo "Error: Version is not set."
exit 1
fi
- name: Build Dejavu App
run: yarn build:dejavu:app
- name: Zip the dist folder
run: |
zip -r dist-${{ steps.set_version.outputs.version }}.zip ./packages/dejavu-main/dist
# Determine the upload_url based on the event type
- name: Determine Upload URL
id: set_upload_url
run: |
if [ "${{ github.event_name }}" == "release" ]; then
echo "upload_url=${{ github.event.release.upload_url }}" >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" == "repository_dispatch" ]; then
release_data=$(curl -s \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.set_version.outputs.version }}")
upload_url=$(echo "$release_data" | jq -r '.upload_url')
if [ "$upload_url" == "null" ]; then
echo "Error: Release not found for tag ${steps.set_version.outputs.version}"
exit 1
fi
echo "upload_url=$upload_url" >> $GITHUB_OUTPUT
else
echo "Error: Unsupported event ${GITHUB_EVENT_NAME}"
exit 1
fi
# Verify the zip file exists
- name: Verify file before upload
run: ls -la ./dist-${{ steps.set_version.outputs.version }}.zip
# Upload the asset using the determined upload_url
- name: Upload dist.zip to GitHub Release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.set_upload_url.outputs.upload_url }}
asset_path: ./dist-${{ steps.set_version.outputs.version }}.zip
asset_name: "dejavu-dist-${{ steps.set_version.outputs.version }}.zip"
asset_content_type: application/zip