-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #378 from MEDomics-UdeS/scalability
THE V1 MERGE
- Loading branch information
Showing
459 changed files
with
60,575 additions
and
53 deletions.
There are no files selected for viewing
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
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 | ||
|
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
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", | ||
}, | ||
} |
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
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 }} |
Oops, something went wrong.