Skip to content

Check if fnm is installed before shell setup (#937) #110

Check if fnm is installed before shell setup (#937)

Check if fnm is installed before shell setup (#937) #110

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'