Check if fnm is installed before shell setup (#937) #110
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: Installation script | |
on: | |
pull_request: | |
paths: | |
- .ci/install.sh | |
push: | |
branches: | |
- master | |
paths: | |
- .ci/install.sh | |
jobs: | |
test_against_latest_release_arm: | |
strategy: | |
matrix: | |
docker_image: | |
- arm64v8/ubuntu | |
- arm32v7/ubuntu | |
name: Test against latest release (ARM) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up QEMU | |
id: qemu | |
uses: docker/setup-qemu-action@v2 | |
- uses: actions/checkout@v3 | |
- name: Run installation script in Docker | |
run: | | |
docker run --rm -v $(pwd):$(pwd) -e "RUST_LOG=fnm=debug" --workdir $(pwd) ${{matrix.docker_image}} bash -c ' | |
set -e | |
apt update && apt install -y unzip curl libatomic1 | |
echo "-------------------------------------" | |
echo "Installing for CPU arch: $(uname -m)" | |
bash ./.ci/install.sh | |
echo "fnm --version" | |
~/.local/share/fnm/fnm --version | |
echo "eval fnm env" | |
eval "$(~/.local/share/fnm/fnm env)" | |
echo "fnm install" | |
~/.local/share/fnm/fnm install 12 | |
echo "node -v" | |
~/.local/share/fnm/fnm exec --using=12 -- node -v | |
' | |
test_against_latest_release: | |
name: Test against latest release | |
strategy: | |
matrix: | |
shell: [fish, zsh, bash] | |
setup: | |
- os: ubuntu | |
script_arguments: '' | |
- os: macos | |
script_arguments: '' | |
- os: macos | |
script_arguments: '--force-no-brew' | |
runs-on: ${{ matrix.setup.os }}-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: "sudo apt-get install -y ${{ matrix.shell }}" | |
name: Install ${{matrix.shell}} using apt-get | |
if: matrix.setup.os == 'ubuntu' | |
- run: "brew update && brew install ${{ matrix.shell }}" | |
name: Update formulae and install ${{matrix.shell}} using Homebrew | |
if: matrix.setup.os == 'macos' | |
- run: | | |
if [ -f ~/.bashrc ]; then | |
cp ~/.bashrc ~/.bashrc.bak | |
echo 'echo hello world' > ~/.bashrc | |
echo '. ~/.bashrc.bak' >> ~/.bashrc | |
fi | |
if [ -f ~/.zshrc ]; then | |
echo 'echo hello world' > ~/.zshrc | |
echo '. ~/.zshrc.bak' >> ~/.zshrc | |
fi | |
name: reset shell profiles | |
- run: "env SHELL=$(which ${{ matrix.shell }}) bash ./.ci/install.sh ${{ matrix.setup.script_arguments }}" | |
name: Run the installation script | |
- run: ./.ci/test_installation_script.sh ${{ matrix.shell }} | |
name: 'Test installation script' |