Skip to content

Build CEA Setup

Build CEA Setup #208

Workflow file for this run

name: Build CEA Setup
on:
workflow_dispatch
jobs:
build_win_setup:
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install CEA to python environment
run: pip install .
- name: Get CEA version
shell: bash
run: echo "CEA_VERSION=$(python -c "import cea; print(cea.__version__)")" >> "$GITHUB_ENV"
- name: Create sdist of CEA
shell: bash
run: |
python -m pip install build
python -m build
mv dist/cityenergyanalyst-$CEA_VERSION.tar.gz setup/cityenergyanalyst.tar.gz
- name: Cache CEA env
id: cache-env
uses: actions/cache@v4
with:
path: |
setup/dependencies/cea-env.7z
setup/dependencies/micromamba.exe
key: ${{ runner.os }}-${{ hashFiles('conda-lock.yml') }}-env
- uses: mamba-org/setup-micromamba@v1
if: steps.cache-env.outputs.cache-hit != 'true'
with:
environment-file: conda-lock.yml
environment-name: cea
cache-environment: true
micromamba-binary-path: setup/dependencies/micromamba.exe
create-args: --no-pyc
- name: Clean conda environment
if: steps.cache-env.outputs.cache-hit != 'true'
shell: bash -el {0}
run: micromamba clean -afy
- name: Compress conda environment
if: steps.cache-env.outputs.cache-hit != 'true'
shell: bash -el {0}
run: 7z a setup/dependencies/cea-env.7z $MAMBA_ROOT_PREFIX
- uses: actions/checkout@v4
with:
path: gui
repository: architecture-building-systems/CityEnergyAnalyst-GUI
ref: "windows-gui-update"
- name: Package CEA GUI
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd $GITHUB_WORKSPACE/gui
yarn
yarn version --new-version $CEA_VERSION --no-git-tag-version
yarn electron:release
mv "out/CityEnergyAnalyst-GUI Setup ${CEA_VERSION}.exe" $GITHUB_WORKSPACE/setup/gui_setup.exe
- name: Install setup plugin
shell: bash
run: |
cd "C:\Program Files (x86)\NSIS\Plugins\x86-unicode"
curl -o Nsis7z.7z https://nsis.sourceforge.io/mediawiki/images/6/69/Nsis7z_19.00.7z
7z e Nsis7z.7z Plugins/x86-unicode/nsis7z.dll
- name: Make setup
shell: bash
run: |
mkdir -p $GITHUB_WORKSPACE/setup/Output
makensis $GITHUB_WORKSPACE/setup/cityenergyanalyst.nsi
- name: Upload setup
uses: actions/upload-artifact@v4
with:
name: setup
path: ${{ github.workspace }}\setup\Output
compression-level: 0
build_mac_dmg:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["macos-12", "macos-14"]
steps:
- uses: actions/checkout@v4
with:
path: cea
- uses: actions/checkout@v4
with:
path: gui
repository: architecture-building-systems/CityEnergyAnalyst-GUI
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-binary-path: gui/dependencies/micromamba
environment-name: cea
create-args: >-
python=3.8
- name: Install CEA to environment
shell: bash -el {0}
run: pip install ./cea
- name: Get CEA version
shell: bash -el {0}
run: echo "CEA_VERSION=$(python -c "import cea; print(cea.__version__)")" >> "$GITHUB_ENV"
- name: Save Apple API Key secret to file
env:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
run: |
echo -n $APPLE_API_KEY_BASE64 | base64 -d -o ${{ github.workspace }}/gui/api_key.p8
- name: Package CEA GUI
shell: bash
env:
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ github.workspace }}/gui/api_key.p8
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd gui
yarn
yarn version --new-version $CEA_VERSION --no-git-tag-version
yarn electron:release