radioconda/.github/workflows/build_radioconda.yml

148 lines
4.4 KiB
YAML
Raw Normal View History

2021-03-10 17:17:41 -05:00
name: Build radioconda
on:
push:
paths:
- "installer_specs/**"
pull_request:
paths:
- "installer_specs/**"
2021-03-10 17:17:41 -05:00
env:
DISTNAME: radioconda
SOURCE: github.com/ryanvolz/radioconda
jobs:
build:
name: ${{ matrix.PLATFORM }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
PLATFORM: linux-64
OS_NAME: Linux
ARCH: x86_64
- os: macos-latest
PLATFORM: osx-64
OS_NAME: MacOSX
ARCH: x86_64
- os: windows-latest
PLATFORM: win-64
OS_NAME: Windows
ARCH: x86_64
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install coreutils for macOS
if: runner.os == 'macOS'
run: brew install coreutils
2021-03-10 17:17:41 -05:00
- name: Install python environment
uses: mamba-org/provision-with-micromamba@main
with:
environment-file: buildenv.yaml
- name: Build installer (bash)
if: runner.os != 'Windows'
shell: bash -l {0}
env:
PLATFORM: ${{ matrix.PLATFORM }}
run: |
python build_installer.py -v
- name: Build installer (cmd.exe)
if: runner.os == 'Windows'
shell: powershell
env:
PLATFORM: ${{ matrix.PLATFORM }}
run: |
$Env:Path = "$Env:CONDA_PREFIX\NSIS;$Env:Path"
echo $Env:Path
python build_installer.py -v
- name: Copy spec and list built installers
2021-03-10 17:17:41 -05:00
shell: bash
env:
PLATFORM: ${{ matrix.PLATFORM }}
2021-03-10 17:17:41 -05:00
run: |
cp installer_specs/$DISTNAME-$PLATFORM/$DISTNAME-$PLATFORM.txt dist/
2021-03-10 17:17:41 -05:00
ls -lh dist
- name: Test installer (sh)
if: contains(matrix.OS_NAME, 'Linux') || contains(matrix.OS_NAME, 'MacOSX')
shell: bash
env:
OS_NAME: ${{ matrix.OS_NAME }}
ARCH: ${{ matrix.ARCH }}
INSTALL_PATH: ${{ github.workspace }}/test_installation
run: |
bash dist/$DISTNAME-*-$OS_NAME-$ARCH.sh -b -p $INSTALL_PATH
eval "$($INSTALL_PATH/bin/conda shell.bash hook)"
conda info
conda list
- name: Test installer (pkg)
if: contains(matrix.OS_NAME, 'MacOSX')
continue-on-error: true # this test doesn't work yet
shell: bash
env:
OS_NAME: ${{ matrix.OS_NAME }}
ARCH: ${{ matrix.ARCH }}
TARGET_VOLUME: CurrentUserHomeDirectory
INSTALL_PATH: ~/Applications/${{ env.DISTNAME }}
run: |
installer -verbose -pkg dist/$DISTNAME-*-$OS_NAME-$ARCH.pkg -target $TARGET_VOLUME
eval "$($INSTALL_PATH/bin/conda shell.bash hook)"
conda info
conda list
- name: Test installer (exe)
if: contains(matrix.OS_NAME, 'Windows')
shell: bash
env:
OS_NAME: ${{ matrix.OS_NAME }}
ARCH: ${{ matrix.ARCH }}
INSTALL_PATH_W: ${{ github.workspace }}\test_installation
run: |
INSTALL_PATH=$(cygpath -u $INSTALL_PATH_W)
INSTALLER_EXE="dist/$DISTNAME-*-$OS_NAME-$ARCH.exe"
INSTALLER_EXE_W=$(cygpath -w $INSTALLER_EXE)
echo "start /wait \"\" $INSTALLER_EXE_W /InstallationType=JustMe /RegisterPython=0 /S /D=$INSTALL_PATH_W" > install.bat
cmd.exe /c install.bat
source $INSTALL_PATH/Scripts/activate
conda info
conda list
- name: Calculate sha256 hash
shell: bash
env:
OS_NAME: ${{ matrix.OS_NAME }}
ARCH: ${{ matrix.ARCH }}
run: |
cd dist
for INSTALLER_PATH in $DISTNAME-*-$OS_NAME-$ARCH.*; do
HASH_PATH="$INSTALLER_PATH.sha256"
sha256sum $INSTALLER_PATH > $HASH_PATH
cat $HASH_PATH
done
2021-03-10 17:17:41 -05:00
- name: Upload to Github artifact
if: ${{ (success() || failure()) && !startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v2
with:
path: dist/*
name: ${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
- name: Upload to release
if: startsWith(github.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/*
tag: ${{ github.ref }}
overwrite: true
file_glob: true