Skip to content

Commit

Permalink
Merge pull request #378 from MEDomics-UdeS/scalability
Browse files Browse the repository at this point in the history
THE V1 MERGE
  • Loading branch information
mvallieres authored Dec 4, 2024
2 parents d937e15 + a9e10c3 commit c637479
Show file tree
Hide file tree
Showing 459 changed files with 60,575 additions and 53 deletions.
Binary file added .DS_Store
Binary file not shown.
16 changes: 16 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.vscode/*
app/*
flask_server/*
main/*
node_modules/*
WorkspaceTemplate/*
ressources/*
*.md
*.json
*.yml
*.cmd
*.sh
.eslintrc.js
next.config.js
*/utilities/fileManagementUtils.js

25 changes: 25 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
env: {
browser: true,
es2021: true
},
extends: ["eslint:recommended", "plugin:react/recommended", "next"],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module"
},
plugins: ["react"],
rules: {
camelcase: ["error"],
"quote-props": ["error", "consistent"],
"react/prop-types": ["off"],
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
"react/no-unescaped-entities": "off",
"@next/next/no-page-custom-font": "off",
"react-hooks/exhaustive-deps": "off",
"@next/next/no-img-element": "off",
"jsx-a11y/role-supports-aria-props": "off",
"@next/next/no-img-element": "off",
"react/no-direct-mutation-state": "off",
},
}
352 changes: 352 additions & 0 deletions .github/workflows/automaticBuilding.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,352 @@
name: Full build and publish with versioning
on:
push:
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
permissions:
contents: write
jobs:
build-windows:
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # Fetch full history for branches

- name: Checking out the correct branches for submodules
run: |
git submodule foreach '
if [ "$name" = "pythonCode/submodules/MEDimage" ]; then
git fetch origin && git checkout -B dev_lab origin/dev_lab && git pull origin dev_lab
elif [ "$name" = "pythonCode/submodules/MEDprofiles" ]; then
git fetch origin && git checkout -B fusion_MEDomicsLab origin/fusion_MEDomicsLab && git pull origin fusion_MEDomicsLab
else
echo "No branch specified for $name"
fi
'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18.13

- name: Get tag name
shell: bash
run: |
VERSION=${GITHUB_REF/refs\/tags\//} # Remove "refs/tags/" from the beginning of the tag name
NEW_VERSION="${VERSION}"
node -p "let pkg=require('./package.json'); pkg.version='$NEW_VERSION'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));"
- name: Print package.json
run: Get-Content package.json

- name: Install dependencies
run: npm install

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.21

- name: Build go
run: |
cd go_server
go build main.go
cd ..
- name: Prebuild libmongocrypt
run: bash ./utilScripts/libmongocrypt_prebuild.sh

- name: Build for Windows
run: npm run build:win

- name: Get tag name
id: get-tag
shell: bash
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
echo "::set-output name=VERSION::${VERSION#v}"
- name: Archive Windows
uses: actions/upload-artifact@v3
with:
name: windows-built
path: ./build/dist/MEDomicsLab-${{ env.VERSION }}-win.exe
env:
VERSION: ${{ steps.get-tag.outputs.VERSION }}

build-linux-ubuntu:
runs-on: ubuntu-20.04

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # Fetch full history for branches

- name: Checking out the correct branches for submodules
run: |
git submodule foreach '
if [ "$name" = "pythonCode/submodules/MEDimage" ]; then
git fetch origin && git checkout -B dev_lab origin/dev_lab && git pull origin dev_lab
elif [ "$name" = "pythonCode/submodules/MEDprofiles" ]; then
git fetch origin && git checkout -B fusion_MEDomicsLab origin/fusion_MEDomicsLab && git pull origin fusion_MEDomicsLab
else
echo "No branch specified for $name"
fi
'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18.13

- name: Get tag name
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
NEW_VERSION="${VERSION}"
node -p "let pkg=require('./package.json'); pkg.version='$NEW_VERSION'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));"
- name: Print package.json
run: cat package.json

- name: Install dependencies
run: npm install

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.21

- name: Build go
run: |
cd go_server
go build main.go
cd ..
- name: Prebuild libmongocrypt
run: bash ./utilScripts/libmongocrypt_prebuild.sh

- name: Build for Linux
run: npm run build:linux

- name: Get tag name
id: get-tag
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
echo "::set-output name=VERSION::${VERSION#v}"
- name: Rename Linux
run: mv ./build/dist/MEDomicsLab-${{ env.VERSION }}-linux.deb ./build/dist/MEDomicsLab-${{ env.VERSION }}-ubuntu.deb
env:
VERSION: ${{ steps.get-tag.outputs.VERSION }}

- name: Archive Linux
uses: actions/upload-artifact@v3
with:
name: linux-built-ubuntu
path: ./build/dist/MEDomicsLab-${{ env.VERSION }}-ubuntu.deb
env:
VERSION: ${{ steps.get-tag.outputs.VERSION }}

build-mac:
runs-on: macos-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # Fetch full history for branches

- name: Checking out the correct branches for submodules
run: |
git submodule foreach '
if [ "$name" = "pythonCode/submodules/MEDimage" ]; then
git fetch origin && git checkout -B dev_lab origin/dev_lab && git pull origin dev_lab
elif [ "$name" = "pythonCode/submodules/MEDprofiles" ]; then
git fetch origin && git checkout -B fusion_MEDomicsLab origin/fusion_MEDomicsLab && git pull origin fusion_MEDomicsLab
else
echo "No branch specified for $name"
fi
'
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.21

- name: Build go
run: |
cd go_server
go build main.go
cd ..
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18.13

- name: Mac OS X with M1 chip
run: uname -m

- name: Install Python 2.7
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Bash python 1st try
run: |
echo $PATH
python --version
which python
- name: Bash python 2nd try
run: |
echo $PATH
python --version
which python
shell: bash {0}
- name: Bash python 3rd try
run: |
echo $PATH
python --version
which python
shell: bash -l {0}

- name: Check if Python2.7 is installed
run: |
if ! which python2.7 > /dev/null; then
curl -O https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg
sudo installer -pkg python-2.7.18-macosx10.9.pkg -target /
else
echo "Python 2.7 is already installed"
fi
- name: Install dependencies
run: npm install

- uses: actions/checkout@v4

- 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 }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list

- name: Install dependencies
run: npm install

- name: Prebuild libmongocrypt
run: bash ./utilScripts/libmongocrypt_prebuild.sh

- name: Update version
run: |
node -p "let pkg=require('./package.json'); pkg.version='${GITHUB_REF/refs\/tags\//}'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));"
echo "Version updated to ${GITHUB_REF/refs\/tags\//}"
# Before building the app, allocate more memory to the shell
- name: Allocate more memory
run: export NODE_OPTIONS=--max-old-space-size=8192

- name: Build for Mac
run: npm run build:mac

- name: Get tag name
id: get-tag
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
echo "::set-output name=VERSION::${VERSION#v}"
- name: Archive Mac
uses: actions/upload-artifact@v3
with:
name: mac-built
path: ./build/dist/MEDomicsLab-${{ env.VERSION }}-mac.pkg
env:
VERSION: ${{ steps.get-tag.outputs.VERSION }}

# Publish to GitHub
publish:
needs: [build-windows, build-linux-ubuntu, build-mac]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download Windows
uses: actions/download-artifact@v3
with:
name: windows-built

- name: Download Linux Ubuntu
uses: actions/download-artifact@v3
with:
name: linux-built-ubuntu

- name: Download Mac
uses: actions/download-artifact@v3
with:
name: mac-built

- name: Install zip
run: sudo apt-get install zip

- name: Move files out of pythonEnv - to root
run: |
mv ./pythonEnv/requirements.txt ./requirements.txt
mv ./pythonEnv/requirements_mac.txt ./requirements_mac.txt
mv ./pythonEnv/conda_env_osx64.yml ./conda_env_osx64.yml
mv ./pythonEnv/create_conda_env_win.bat ./create_conda_env_win.bat
mv ./pythonEnv/create_conda_env_linux.sh ./create_conda_env_linux.sh
mv ./pythonEnv/create_conda_env_mac_yml.sh ./create_conda_env_mac_yml.sh
mv ./pythonEnv/create_conda_env_mac.sh ./create_conda_env_mac.sh
ls -R
- name: zip Windows
run: zip -r MEDomicsLab-PythonEnv-win.zip ./requirements.txt ./create_conda_env_win.bat

- name: zip Linux
run: zip -r MEDomicsLab-PythonEnv-linux.zip ./requirements.txt ./create_conda_env_linux.sh

- name: zip Mac
run: zip -r MEDomicsLab-PythonEnv-mac.zip ./create_conda_env_mac.sh ./requirements_mac.txt
- name: Get tag name
id: get-tag
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
echo "::set-output name=VERSION::${VERSION#v}"
- name: Publish to GitHub
uses: softprops/action-gh-release@v1
with:
files: |
./MEDomicsLab-${{ env.VERSION }}-win.exe
./MEDomicsLab-${{ env.VERSION }}-ubuntu.deb
./MEDomicsLab-${{ env.VERSION }}-mac.pkg
name: MEDomicsLab-${{ env.VERSION }}
body: |
MEDomicsLab-${{ env.VERSION }}
This is a full release of MEDomicsLab. This release includes the MEDomicsLab application and the Python environment.
Refer to the [Documentation](https://medomics-udes.gitbook.io/medomicslab-docs/)
${{ github.ref }}
draft: true
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
env:
VERSION: ${{ steps.get-tag.outputs.VERSION }}
Loading

0 comments on commit c637479

Please sign in to comment.