|
|
|
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@v3
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- 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@v4
|
|
|
|
- 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'
|