hcengineering / platform

Huly — All-in-One Project Management Platform (alternative to Linear, Jira, Slack, Notion, Motion)
https://huly.io
Eclipse Public License 2.0
16.56k stars 997 forks source link

Improve Build and run experience with one command script #6982

Open moshebeeri opened 2 weeks ago

moshebeeri commented 2 weeks ago

Description of the issue

As I look readme file I see cd ./dev/ rush build # Will build all the required packages.

rush rebuild # could be used to omit build cache.

rush bundle # Will prepare bundles. rush package # Will build all webpack packages. rush validate # Will validate all sources with typescript and generate d.ts files required for ts-node execution. rush svelte-check # Optional. svelte files validation using svelte-check. rush docker:build # Will build Docker containers for all applications in the local Docker environment. rush docker:up # Will set up all the containers

I would expect one command ./dev/rush_buld.sh

Your environment

Steps to reproduce

See readme.md

Expected behaviour

Tell us what should happen.

Actual behaviour

Tell us what happens instead (include screenshots or logs). ./dev/rush_buld.sh

Possible solutions

./dev/rush_buld.sh

/bin/bash

cd ./dev/ rush build # Will build all the required packages.

rush rebuild # could be used to omit build cache.

rush bundle # Will prepare bundles. rush package # Will build all webpack packages. rush validate # Will validate all sources with typescript and generate d.ts files required for ts-node execution. rush svelte-check # Optional. svelte files validation using svelte-check. rush docker:build # Will build Docker containers for all applications in the local Docker environment. rush docker:up # Will set up all the containers cd .. If you know how to fix the bug, please describe your solution here.

kike49 commented 1 week ago

We are expecting a single command (./dev/rush_buld.sh) that wraps all the individual Rush commands described in the README. Here's a possible solution: creating a bash script rush_build.sh that will execute all of these commands in sequence.

  1. Create the rush_build.sh file:

    • Navigate to the ./dev/ directory.
    • Create a new shell script file called rush_build.sh with the following command:
    touch rush_build.sh
  2. Edit the rush_build.sh file:

    • Open the file in a text editor and add the necessary commands to execute each Rush step in the desired order. Here’s an example of what your rush_build.sh script might look like:
    #!/bin/bash
    # This script will run the rush build process
    
    cd ./dev/
    
    # Build all the required packages
    rush build
    
    # Rebuild to omit cache (optional, uncomment if needed)
    # rush rebuild
    
    # Prepare bundles
    rush bundle
    
    # Build webpack packages
    rush package
    
    # Validate TypeScript and generate .d.ts files
    rush validate
    
    # Optional: validate svelte files using svelte-check
    rush svelte-check
    
    # Build Docker containers for all applications
    rush docker:build
    
    # Set up all containers
    rush docker:up
    
    # Navigate back to the original directory
    cd ..
  3. Make the script executable:

    • Run the following command to give the script execution permissions:
    chmod +x rush_build.sh
  4. Run the script:

    • Now you can run this script with the command:
    ./dev/rush_build.sh

Notes: