name: "Release : Timely Executables" on: # Triggered manually workflow_dispatch: inputs: tag: description: "Timely version" required: true # Triggered by release-nightly-dev.yml / release-pr.yml workflow_call: inputs: tag: description: "Timely version" required: true type: string secrets: NC_GITHUB_TOKEN: required: true jobs: build-executables: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: token: ${{ secrets.NC_GITHUB_TOKEN }} repository: 'nocodb/nocodb-timely' - name: Cache node modules id: cache-npm uses: actions/cache@v3 env: cache-name: cache-node-modules with: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Cache pkg modules id: cache-pkg uses: actions/cache@v3 env: cache-name: cache-pkg with: # pkg cache files are stored in `~/.pkg-cache` path: ~/.pkg-cache key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install QEMU and ldid run: | sudo apt update # Install qemu sudo apt install qemu binfmt-support qemu-user-static # install ldid git clone https://github.com/daeken/ldid.git cd ./ldid ./make.sh sudo cp ./ldid /usr/local/bin - name: Update nocodb-timely env: TAG: ${{ github.event.inputs.tag || inputs.tag }} run: | npm i -E nocodb-daily@$TAG git config user.name 'github-actions[bot]' git config user.email 'github-actions[bot]@users.noreply.github.com' git commit package.json -m "Update to $TAG" git tag $TAG git push --tags - uses: actions/setup-node@v3 with: node-version: 16 - name : Install dependencies and build executables run: | # install npm dependendencies npm i # Copy sqlite binaries rsync -rvzhP ./binaries/binding/ ./node_modules/sqlite3/lib/binding/ # clean up code to optimize size npx modclean --patterns="default:*" --ignore="nc-lib-gui-daily/**,dayjs/**,express-status-monitor/**,sqlite3/**" --run # build executables npm run build mkdir ./mac-dist mv ./dist/Noco-macos-arm64 ./mac-dist/ mv ./dist/Noco-macos-x64 ./mac-dist/ - name: Upload executables(except mac executables) to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.NC_GITHUB_TOKEN }} file: dist/** tag: ${{ github.event.inputs.tag || inputs.tag }} overwrite: true file_glob: true repo_name: nocodb/nocodb-timely - uses: actions/upload-artifact@master with: name: ${{ github.event.inputs.tag || inputs.tag }} path: mac-dist retention-days: 1 sign-mac-executables: runs-on: macos-latest needs: build-executables steps: - uses: actions/download-artifact@master with: name: ${{ github.event.inputs.tag || inputs.tag }} path: mac-dist - name: Sign macOS executables run: | /usr/bin/codesign --force -s - ./mac-dist/Noco-macos-arm64 -v /usr/bin/codesign --force -s - ./mac-dist/Noco-macos-x64 -v - uses: actions/upload-artifact@master with: name: ${{ github.event.inputs.tag || inputs.tag }} path: mac-dist retention-days: 1 publish-mac-executables: needs: sign-mac-executables runs-on: ubuntu-latest steps: - uses: actions/download-artifact@master with: name: ${{ github.event.inputs.tag || inputs.tag }} path: mac-dist - name: Upload mac executables to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.NC_GITHUB_TOKEN }} file: mac-dist/** tag: ${{ github.event.inputs.tag || inputs.tag }} overwrite: true file_glob: true repo_name: nocodb/nocodb-timely