Implement build-install (as per #79) #67
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: CI | |
'on': | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
env: | |
ERLC_USE_SERVER: true | |
jobs: | |
ci: | |
name: CI OTP ${{matrix.otp_vsn}}, on ${{matrix.os}} | |
runs-on: ${{matrix.os}} | |
strategy: | |
fail-fast: false | |
matrix: | |
otp_vsn: [23, 24, 25, master] | |
os: [ubuntu-22.04, macos-12] | |
steps: | |
- name: Update env. | |
run: | | |
if [[ ${{matrix.os}} == macos* ]]; then | |
/bin/bash -c "$(curl -fsSL \ | |
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
brew install automake fop wxwidgets | |
else | |
sudo sed -i 's/azure\.//' /etc/apt/sources.list # Reduces chance of time-outs | |
sudo apt-get update -y | |
sudo apt-get upgrade -y | |
sudo apt-get install -y --no-install-recommends \ | |
curl ca-certificates git autoconf dpkg-dev \ | |
zlib1g-dev libncurses5-dev libssl-dev unixodbc-dev libgmp3-dev \ | |
libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libsctp-dev \ | |
lksctp-tools build-essential gcc-9 m4 fop xsltproc \ | |
default-jdk libxml2-utils procps valgrind binutils | |
fi | |
echo 'KERL_RELEASE_TARGET=debug opt' >> $GITHUB_ENV | |
- name: Git checkout | |
uses: actions/checkout@v3 | |
- name: Update OTP releases | |
run: ./kerl update releases | |
- name: Choose OTP version | |
run: | | |
_VERSION="${{matrix.otp_vsn}}" | |
case "$_VERSION" in | |
master) | |
echo '_KERL_PREFIX_GIT=git' >> $GITHUB_ENV | |
echo '_KERL_PREFIX_GIT_TARGET=https://github.com/erlang/otp.git' >> $GITHUB_ENV | |
echo 'KERL_BUILD_DOCS=true' >> $GITHUB_ENV | |
;; | |
*) | |
_VERSION=$(./kerl list releases | grep "^${_VERSION}" | tail -1) | |
;; | |
esac | |
echo "_KERL_VSN=${_VERSION}" >> $GITHUB_ENV | |
- name: Test build+install chosen version | |
run: | | |
export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" | |
if ! KERL_DEBUG=true ./kerl build-install ${_KERL_PREFIX_GIT} \ | |
${_KERL_PREFIX_GIT_TARGET} \ | |
"${_KERL_VSN}" \ | |
"${_KERL_VSN}" \ | |
"$PWD/build-install_${_KERL_VSN}"; then | |
## Print build log if it fails | |
cat ~/.kerl/builds/*/*.log | |
exit 1 | |
fi | |
- name: Check installation status (build+install) | |
run: ./kerl status | |
- name: Validate installation (build+install) | |
run: | | |
for file in ~/.kerl/* | |
do | |
echo "==== $file ====" | |
cat "$file" | |
echo | |
done | |
source $(./kerl path install_"${_KERL_VSN}")/activate | |
erl -s crypto -s init stop | |
erl_call |