chore: Missing dependency in GUI #17636
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: 'PR Release' | |
on: | |
pull_request: | |
# opened: pull request is created | |
# reopened: closed pull request is reopened | |
# synchronize: commit(s) pushed to the pull request | |
# ready_for_review: non PR release | |
# closed: pull request is closed, used to delete uffizzi previews | |
types: [opened, reopened, synchronize, ready_for_review, closed] | |
paths: | |
- "packages/nocodb-sdk/**" | |
- "packages/nc-gui/**" | |
- "packages/nocodb/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
# enrich tag for pr release | |
set-tag: | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
runs-on: 'ubuntu-latest' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
ref: ${{ github.ref }} | |
- name: set-tag | |
id: tag-step | |
run: | | |
# Get current date | |
CURRENT_DATE=$(date "%Y%m%d") | |
CURRENT_TIME=$(date "%H%M") | |
# Get current PR number | |
PR_NUMBER=${{github.event.number}} | |
# Get current version | |
CURRENT_VERSION=$(cat ./packages/nocodb/package.json | jq -r ".version") | |
# Construct tag name | |
TAG_NAME=pr-${PR_NUMBER}-${CURRENT_DATE}-${CURRENT_TIME} | |
echo "TARGET_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT | |
echo "CURRENT_VERSION=${CURRENT_VERSION}" >> $GITHUB_OUTPUT | |
- name: verify-tag | |
run: | | |
echo ${{ steps.tag-step.outputs.TARGET_TAG }} | |
echo ${{ steps.tag-step.outputs.CURRENT_VERSION }} | |
outputs: | |
target_tag: ${{ steps.tag-step.outputs.TARGET_TAG }} | |
current_version: ${{ steps.tag-step.outputs.CURRENT_VERSION }} | |
# Build, install, publish frontend and backend to npm | |
release-npm: | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
needs: [set-tag] | |
uses: ./.github/workflows/release-npm.yml | |
with: | |
tag: ${{ needs.set-tag.outputs.target_tag }} | |
targetEnv: 'DEV' | |
secrets: | |
NPM_TOKEN: "${{ secrets.NPM_TOKEN }}" | |
# Build docker image and push to docker hub | |
release-docker: | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
needs: [release-npm, set-tag] | |
uses: ./.github/workflows/release-docker.yml | |
with: | |
currentVersion: ${{ needs.set-tag.outputs.current_version }} | |
tag: ${{ needs.set-tag.outputs.target_tag }} | |
targetEnv: 'DEV' | |
isDaily: 'N' | |
secrets: | |
DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}" | |
DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" | |
# Build executables and publish to GitHub | |
# release-executables: | |
# if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
# needs: [set-tag, release-npm] | |
# uses: ./.github/workflows/release-timely-executables.yml | |
# with: | |
# tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} | |
# secrets: | |
# NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" | |
# Add a comment for PR docker build | |
leave-comment: | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
runs-on: 'ubuntu-latest' | |
needs: [release-docker, set-tag] | |
steps: | |
- uses: peter-evans/commit-comment@v2 | |
with: | |
body: | | |
The PR changes have been deployed. Please run the following command to verify: | |
``` | |
docker run -d -p 8888:8080 nocodb/nocodb-timely:${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} | |
``` | |
# Create a preview for the pull request | |
preview-pull-request: | |
name: "Trigger Uffizzi Preview" | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
runs-on: 'ubuntu-latest' | |
needs: [release-docker, set-tag] | |
outputs: | |
compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} | |
steps: | |
- name: Checkout git repo | |
uses: actions/checkout@v3 | |
- name: Render Compose File | |
run: | | |
NOCODB_IMAGE=nocodb/nocodb-timely:${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} | |
export NOCODB_IMAGE | |
# Render simple template from environment variables. | |
envsubst < .github/uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml | |
cat docker-compose.rendered.yml | |
- name: Upload Rendered Compose File as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: docker-compose.rendered.yml | |
retention-days: 2 | |
- name: Serialize PR Event to File | |
run: | | |
cat << EOF > event.json | |
${{ toJSON(github.event) }} | |
EOF | |
- name: Upload PR Event as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: event.json | |
retention-days: 2 | |
# Add a comment for PR executable build | |
# leave-executable-comment: | |
# if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} | |
# runs-on: 'ubuntu-latest' | |
# needs: [release-executables, set-tag] | |
# steps: | |
# - uses: peter-evans/commit-comment@v2 | |
# with: | |
# body: | | |
# ### Run Executables | |
# #### MacOS | |
# ```bash | |
# mkdir -p ./${{ needs.set-tag.outputs.current_version }}/${{ needs.set-tag.outputs.target_tag }} && cd "$_" \ | |
# && curl http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-macos-arm64 -o noco -L \ | |
# && chmod x noco \ | |
# && ./noco | |
# ``` | |
# #### Linux | |
# ```bash | |
# mkdir -p ./${{ needs.set-tag.outputs.current_version }}/${{ needs.set-tag.outputs.target_tag }} && cd "$_" \ | |
# && curl http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-linux-x64 -o noco -L \ | |
# && chmod x noco \ | |
# && ./noco | |
# ``` | |
# #### Windows | |
# ```bash | |
# iwr http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-win-arm64.exe | |
# .\Noco-win-arm64.exe | |
# ``` | |
# For executables visit [here](https://github.com/nocodb/nocodb-timely/releases/tag/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}) | |
# delete the uffizzi preview created off of this PR | |
delete-uffizzi-preview: | |
name: Call for Preview Deletion | |
runs-on: ubuntu-latest | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action == 'closed' }} | |
steps: | |
# If this PR is closing, we will not render a compose file nor pass it to the next workflow. | |
- name: Serialize PR Event to File | |
run: | | |
cat << EOF > event.json | |
${{ toJSON(github.event) }} | |
EOF | |
- name: Upload PR Event as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: event.json | |
retention-days: 2 |