Skip to content

Commit

Permalink
Testing done, invered changes and added submodules fix
Browse files Browse the repository at this point in the history
  • Loading branch information
MahdiAll99 committed Nov 29, 2024
1 parent e014833 commit e8e721a
Showing 1 changed file with 218 additions and 2 deletions.
220 changes: 218 additions & 2 deletions .github/workflows/automaticBuilding.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,78 @@ on:
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

Expand All @@ -16,7 +88,7 @@ jobs:
submodules: recursive
fetch-depth: 0 # Fetch full history for branches

- name: Update submodules to correct branch
- name: Checking out the correct branches for submodules
run: |
git submodule foreach '
if [ "$name" = "pythonCode/submodules/MEDimage" ]; then
Expand Down Expand Up @@ -81,19 +153,157 @@ jobs:
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-linux-ubuntu]
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

Expand All @@ -108,10 +318,14 @@ jobs:
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: |
Expand All @@ -122,7 +336,9 @@ jobs:
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 }}
Expand Down

0 comments on commit e8e721a

Please # to comment.