mirror of
https://github.com/nocodb/nocodb.git
synced 2026-02-02 02:26:57 +00:00
chore: action for releasing
Signed-off-by: Pranav C <pranavxc@gmail.com>
This commit is contained in:
53
.github/workflows/release-executables.yml
vendored
53
.github/workflows/release-executables.yml
vendored
@@ -1,17 +1,17 @@
|
||||
name: "Release : Executables"
|
||||
name: "Release : Timely Executables"
|
||||
|
||||
on:
|
||||
# Triggered manually
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: "Timely version"
|
||||
description: "Tag name"
|
||||
required: true
|
||||
# Triggered by release-nightly-dev.yml / release-pr.yml
|
||||
# Triggered by release-nocodb.yml
|
||||
workflow_call:
|
||||
inputs:
|
||||
tag:
|
||||
description: "Timely version"
|
||||
description: "Tag name"
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
@@ -22,9 +22,6 @@ jobs:
|
||||
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
|
||||
@@ -51,6 +48,8 @@ jobs:
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
# for building images for all platforms these librarues
|
||||
- name: Install QEMU and ldid
|
||||
run: |
|
||||
# Install qemu
|
||||
@@ -61,26 +60,17 @@ jobs:
|
||||
./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
|
||||
- name : Install nocodb, other dependencies and build executables
|
||||
run: |
|
||||
cd ./scripts/pkg-executable
|
||||
|
||||
# Install nocodb version based on provided tag name
|
||||
npm i -E nocodb@$TAG
|
||||
|
||||
# install npm dependendencies
|
||||
npm i
|
||||
|
||||
@@ -93,6 +83,7 @@ jobs:
|
||||
# build executables
|
||||
npm run build
|
||||
|
||||
# Move macOS executables for signing
|
||||
mkdir ./mac-dist
|
||||
mv ./dist/Noco-macos-arm64 ./mac-dist/
|
||||
mv ./dist/Noco-macos-x64 ./mac-dist/
|
||||
@@ -101,16 +92,15 @@ jobs:
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.NC_GITHUB_TOKEN }}
|
||||
file: dist/**
|
||||
file: scripts/pkg-executable/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
|
||||
path: scripts/pkg-executable/mac-dist
|
||||
retention-days: 1
|
||||
|
||||
sign-mac-executables:
|
||||
@@ -121,17 +111,17 @@ jobs:
|
||||
- uses: actions/download-artifact@master
|
||||
with:
|
||||
name: ${{ github.event.inputs.tag || inputs.tag }}
|
||||
path: mac-dist
|
||||
path: scripts/pkg-executable/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
|
||||
/usr/bin/codesign --force -s - ./scripts/pkg-executable/mac-dist/Noco-macos-arm64 -v
|
||||
/usr/bin/codesign --force -s - ./scripts/pkg-executable/mac-dist/Noco-macos-x64 -v
|
||||
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: ${{ github.event.inputs.tag || inputs.tag }}
|
||||
path: mac-dist
|
||||
path: scripts/pkg-executable/mac-dist
|
||||
retention-days: 1
|
||||
|
||||
|
||||
@@ -142,16 +132,15 @@ jobs:
|
||||
- uses: actions/download-artifact@master
|
||||
with:
|
||||
name: ${{ github.event.inputs.tag || inputs.tag }}
|
||||
path: mac-dist
|
||||
path: scripts/pkg-executable/mac-dist
|
||||
|
||||
- name: Upload mac executables to release
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.NC_GITHUB_TOKEN }}
|
||||
file: mac-dist/**
|
||||
file: scripts/pkg-executable/mac-dist/**
|
||||
tag: ${{ github.event.inputs.tag || inputs.tag }}
|
||||
overwrite: true
|
||||
file_glob: true
|
||||
repo_name: nocodb/nocodb-timely
|
||||
|
||||
|
||||
|
||||
2
.github/workflows/release-nightly-dev.yml
vendored
2
.github/workflows/release-nightly-dev.yml
vendored
@@ -51,7 +51,7 @@ jobs:
|
||||
# Build executables and publish to GitHub
|
||||
release-executables:
|
||||
needs: [set-tag, release-npm]
|
||||
uses: ./.github/workflows/release-executables.yml
|
||||
uses: ./.github/workflows/release-timely-executables.yml
|
||||
with:
|
||||
tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.nightly_build_tag }}
|
||||
secrets:
|
||||
|
||||
15
.github/workflows/release-nocodb.yml
vendored
15
.github/workflows/release-nocodb.yml
vendored
@@ -44,14 +44,14 @@ jobs:
|
||||
# bump the version from PREV_TAG
|
||||
TARGET_TAG=$(echo ${PREV_TAG} | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
||||
fi
|
||||
|
||||
|
||||
echo target version: ${TARGET_TAG}
|
||||
echo previous version: ${PREV_TAG}
|
||||
echo "::set-output name=target_tag::${TARGET_TAG}"
|
||||
echo "::set-output name=prev_tag::${PREV_TAG}"
|
||||
- name: Verify
|
||||
run : |
|
||||
echo ${{ steps.process-input.outputs.target_tag }}
|
||||
echo ${{ steps.process-input.outputs.target_tag }}
|
||||
|
||||
# Merge develop to master
|
||||
pr-to-master:
|
||||
@@ -94,6 +94,15 @@ jobs:
|
||||
DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}"
|
||||
DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}"
|
||||
|
||||
# Build executables and publish to GitHub
|
||||
release-executables:
|
||||
needs: [release-draft-note, process-input]
|
||||
uses: ./.github/workflows/release-executables.yml
|
||||
with:
|
||||
tag: ${{ needs.process-input.outputs.target_tag }}
|
||||
secrets:
|
||||
NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}"
|
||||
|
||||
# Close all issues with target tags 'Fixed' & 'Resolved'
|
||||
close-fixed-issues:
|
||||
needs: [release-docker, process-input]
|
||||
@@ -101,7 +110,7 @@ jobs:
|
||||
with:
|
||||
issue_label: 'Status: Fixed'
|
||||
version: ${{ needs.process-input.outputs.target_tag }}
|
||||
|
||||
|
||||
close-resolved-issues:
|
||||
needs: [close-fixed-issues, process-input]
|
||||
uses: ./.github/workflows/release-close-issue.yml
|
||||
|
||||
2
.github/workflows/release-pr.yml
vendored
2
.github/workflows/release-pr.yml
vendored
@@ -80,7 +80,7 @@ jobs:
|
||||
# Build executables and publish to GitHub
|
||||
release-executables:
|
||||
needs: [set-tag, release-npm]
|
||||
uses: ./.github/workflows/release-executables.yml
|
||||
uses: ./.github/workflows/release-timely-executables.yml
|
||||
with:
|
||||
tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}
|
||||
secrets:
|
||||
|
||||
157
.github/workflows/release-timely-executables.yml
vendored
Normal file
157
.github/workflows/release-timely-executables.yml
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
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: |
|
||||
# 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
|
||||
|
||||
|
||||
11
scripts/pkg-executable/index.js
Normal file
11
scripts/pkg-executable/index.js
Normal file
@@ -0,0 +1,11 @@
|
||||
(async () => {
|
||||
try {
|
||||
const app = require('express')();
|
||||
const {Noco} = require("nocodb");
|
||||
const httpServer = app.listen(process.env.PORT || 8080);
|
||||
app.use(await Noco.init({}, httpServer, app));
|
||||
console.log(`Visit : localhost:${process.env.PORT}/dashboard`)
|
||||
} catch(e) {
|
||||
console.log(e)
|
||||
}
|
||||
})()
|
||||
33
scripts/pkg-executable/package.json
Normal file
33
scripts/pkg-executable/package.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "Noco",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"bin": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node index.js",
|
||||
"upgrade": "npm uninstall --save nocodb && npm install --save nocodb",
|
||||
"build": "npx pkg . --out-path dist --compress GZip"
|
||||
},
|
||||
"pkg": {
|
||||
"assets": [
|
||||
"node_modules/**/*"
|
||||
],
|
||||
"targets": [
|
||||
"node16-linux-arm64",
|
||||
"node16-macos-arm64",
|
||||
"node16-win-arm64",
|
||||
"node16-linux-x64",
|
||||
"node16-macos-x64",
|
||||
"node16-win-x64"
|
||||
]
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"express": "^4.17.1",
|
||||
"nocodb-daily": "0.91.10"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user