MACOS-only build for a last test #94
Workflow file for this run
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
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-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-mac] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- 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 }}-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 }} |