name: 'NocoDB Nightly Dev Release' on: # Triggered manually workflow_dispatch: schedule: # every 6 hours - cron: '0 */6 * * *' jobs: # enrich tag for nightly auto release set-tag: 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") TAG_NAME=${CURRENT_DATE}-${CURRENT_TIME} IS_DAILY='Y' # Get current version CURRENT_VERSION=$(cat ./packages/nocodb/package.json | jq -r ".version") # Set the tag if [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then IS_DAILY='N' fi echo "NIGHTLY_BUILD_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT echo "IS_DAILY=${IS_DAILY}" >> $GITHUB_OUTPUT echo "CURRENT_VERSION=${CURRENT_VERSION}" >> $GITHUB_OUTPUT - name: verify-tag run: | echo ${{ steps.tag-step.outputs.NIGHTLY_BUILD_TAG }} echo ${{ steps.tag-step.outputs.IS_DAILY }} echo ${{ steps.tag-step.outputs.CURRENT_VERSION }} outputs: nightly_build_tag: ${{ steps.tag-step.outputs.NIGHTLY_BUILD_TAG }} is_daily: ${{ steps.tag-step.outputs.IS_DAILY }} current_version: ${{ steps.tag-step.outputs.CURRENT_VERSION }} # Build frontend and backend and publish to npm release-npm: needs: set-tag uses: ./.github/workflows/release-npm.yml with: tag: ${{ needs.set-tag.outputs.nightly_build_tag }} targetEnv: 'DEV' secrets: NPM_TOKEN: "${{ secrets.NPM_TOKEN }}" # Build executables and publish to GitHub release-executables: needs: [set-tag, release-npm] uses: ./.github/workflows/release-timely-executables.yml with: tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.nightly_build_tag }} secrets: NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" # Build docker image and push to docker hub release-docker: needs: [set-tag, release-npm] uses: ./.github/workflows/release-docker.yml with: currentVersion: ${{ needs.set-tag.outputs.current_version }} tag: ${{ needs.set-tag.outputs.nightly_build_tag }} targetEnv: 'DEV' isDaily: ${{ needs.set-tag.outputs.is_daily }} secrets: DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}" DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}"