diff --git a/.github/workflows/jsroot-ci-old.yml b/.github/workflows/jsroot-ci-old.yml new file mode 100644 index 000000000..c599b5020 --- /dev/null +++ b/.github/workflows/jsroot-ci-old.yml @@ -0,0 +1,194 @@ +name: JSROOT CI Old + +on: + push: + branches: + - "7.7" + - "7.8" + +jobs: + build-ubuntu: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node-version: [18.x, 20.x] + cxx: [g++-11, g++-12, g++-13] + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Set up C++ compiler (Ubuntu) + run: | + sudo apt-get update + sudo apt-get install -y ${{ matrix.cxx }} + sudo apt-get install -y xutils-dev libxi-dev libxxf86vm-dev x11proto-xf86vidmode-dev mesa-utils xvfb libgl1-mesa-dri libglapi-mesa libosmesa6 musl-dev libgl1-mesa-dev + sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config + echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV + echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV + + - name: Install dependencies + run: | + npm ci + npm install gl --no-save + + - name: Run eslint + run: | + npm run check + + - name: Build jsroot.js + run: | + npm run build + + - name: Run demos + run: | + cd demo/node; npm install; cd ../.. + xvfb-run -s "-ac -screen 0 1280x1024x24" node demo/node/makesvg.js + node demo/node/tree_dump.js + node demo/node/tree_draw.js + xvfb-run -s "-ac -screen 0 1280x1024x24" node demo/node/geomsvg.js + node demo/node/selector.js + cd demo/node; xvfb-run -s "-ac -screen 0 1280x1024x24" node make_image.js + + tests_ubuntu: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x, 20.x] + steps: + - name: Checkout jsroot + uses: actions/checkout@v4 + with: + path: 'jsroot' + + - name: Checkout jsroot-test repo + uses: actions/checkout@v4 + with: + repository: 'linev/jsroot-test' + ref: '${{ github.ref }}' + path: 'jsroot-test' + + - name: Show jsroot status + run: | + cd jsroot + git status + + - name: Show jsroot-test status + run: | + cd jsroot-test + git status + + - name: Install System Dependencies for headless-gl + run: | + sudo apt-get update + sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev xvfb + + - name: Dependencies jsroot + run: | + cd jsroot + npm ci + npm install gl --no-save + + - name: Dependencies jsroot-test + run: | + cd jsroot-test + npm install + + - name: Run all tests + run: | + cd jsroot-test + xvfb-run -s "-ac -screen 0 1280x1024x24" node test.js -c -m -p + + build-macos: + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + node-version: [18.x, 20.x] + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Configure xcode usage + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + + - name: Set up C++ compiler (macOS) + run: | + echo "CXX=clang++" >> $GITHUB_ENV + + - name: Install dependencies + run: | + brew install python-setuptools pango librsvg + npm ci + npm install gl --no-save + + - name: Run eslint + run: | + npm run check + + - name: Build jsroot.js + run: | + npm run build + + - name: Run demos + run: | + cd demo/node; npm install; cd ../.. + node demo/node/makesvg.js + node demo/node/tree_dump.js + node demo/node/tree_draw.js + node demo/node/selector.js + cd demo/node; node make_image.js + + build-windows: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + node-version: [18.x, 20.x] + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Set up C++ compiler (Windows) + run: | + echo "CXX=cl" >> $GITHUB_ENV + + - name: Install dependencies + run: | + npm install + npm install gl --no-save + + - name: Run eslint + run: | + npm run check + + - name: Build jsroot.js + run: | + npm run build + + - name: Run demos + run: | + cd demo/node; npm install; cd ../.. + node demo/node/makesvg.js + node demo/node/tree_dump.js + node demo/node/tree_draw.js + node demo/node/geomsvg.js + node demo/node/selector.js + cd demo/node; node make_image.js diff --git a/.github/workflows/jsroot-ci.yml b/.github/workflows/jsroot-ci.yml index be5708749..43a6908a8 100644 --- a/.github/workflows/jsroot-ci.yml +++ b/.github/workflows/jsroot-ci.yml @@ -4,8 +4,6 @@ on: push: branches: - "master" - - "7.7" - - "7.8" pull_request: branches: - "master" @@ -16,11 +14,12 @@ jobs: strategy: fail-fast: false matrix: - node-version: [18.x, 20.x] - cxx: [g++-11, g++-12, g++-13] + node-version: [18.x, 20.x, 22.x] + cxx: [g++-12, g++-13, g++-14] steps: - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: @@ -34,11 +33,11 @@ jobs: sudo apt-get install -y xutils-dev libxi-dev libxxf86vm-dev x11proto-xf86vidmode-dev mesa-utils xvfb libgl1-mesa-dri libglapi-mesa libosmesa6 musl-dev libgl1-mesa-dev sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV + echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV - name: Install dependencies run: | npm ci - npm install gl --no-save - name: Run eslint run: | @@ -61,8 +60,11 @@ jobs: tests_ubuntu: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 22.x] + cxx: [g++-12, g++-13, g++-14] + steps: - name: Checkout jsroot uses: actions/checkout@v4 @@ -73,29 +75,38 @@ jobs: uses: actions/checkout@v4 with: repository: 'linev/jsroot-test' - ref: '${{ github.ref }}' path: 'jsroot-test' - name: Show jsroot status run: | - cd jsroot - git status + cd jsroot + git status - name: Show jsroot-test status run: | - cd jsroot-test - git status + cd jsroot-test + git status + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + cache-dependency-path: jsroot/package-lock.json + node-version: ${{ matrix.node-version }} + cache: 'npm' - - name: Install System Dependencies for headless-gl + - name: Set up C++ compiler (Ubuntu) run: | sudo apt-get update - sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev xvfb + sudo apt-get install -y ${{ matrix.cxx }} + sudo apt-get install -y xutils-dev libxi-dev libxxf86vm-dev x11proto-xf86vidmode-dev mesa-utils xvfb libgl1-mesa-dri libglapi-mesa libosmesa6 musl-dev libgl1-mesa-dev + sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config + echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV + echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV - name: Dependencies jsroot run: | cd jsroot npm ci - npm install gl --no-save - name: Dependencies jsroot-test run: | @@ -112,7 +123,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 22.x] steps: - uses: actions/checkout@v4 @@ -135,7 +146,6 @@ jobs: run: | brew install python-setuptools pango librsvg npm ci - npm install gl --no-save - name: Run eslint run: | @@ -159,7 +169,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 22.x] steps: - uses: actions/checkout@v4 @@ -176,7 +186,6 @@ jobs: - name: Install dependencies run: | npm install - npm install gl --no-save - name: Run eslint run: |