name: build-dependencies description: Installs build dependencies for Serai runs: using: "composite" steps: - name: Remove unused packages shell: bash run: | sudo apt remove -y "*powershell*" "*nuget*" "*bazel*" "*ansible*" "*terraform*" "*heroku*" "*aws*" azure-cli sudo apt remove -y "*nodejs*" "*npm*" "*yarn*" "*java*" "*kotlin*" "*golang*" "*swift*" "*julia*" "*fortran*" "*android*" sudo apt remove -y "*apache2*" "*nginx*" "*firefox*" "*chromium*" "*chrome*" "*edge*" sudo apt remove -y --allow-remove-essential -f shim-signed # This command would fail, due to shim-signed having unmet dependencies, hence its removal sudo apt remove -y "*qemu*" "*sql*" "*texinfo*" "*imagemagick*" if: runner.os == 'Linux' - name: Remove unused packages shell: bash run: | (gem uninstall -aIx) || (exit 0) brew uninstall --force "*msbuild*" "*powershell*" "*nuget*" "*bazel*" "*ansible*" "*terraform*" "*heroku*" "*aws*" azure-cli brew uninstall --force "*nodejs*" "*npm*" "*yarn*" "*java*" "*kotlin*" "*golang*" "*swift*" "*julia*" "*fortran*" "*android*" brew uninstall --force "*apache2*" "*nginx*" "*firefox*" "*chromium*" "*chrome*" "*edge*" brew uninstall --force "*qemu*" "*sql*" "*texinfo*" "*imagemagick*" brew cleanup if: runner.os == 'macOS' - name: Install dependencies shell: bash run: | if [ "$RUNNER_OS" == "Linux" ]; then sudo apt install -y ca-certificates protobuf-compiler elif [ "$RUNNER_OS" == "Windows" ]; then choco install protoc elif [ "$RUNNER_OS" == "macOS" ]; then brew install protobuf fi - name: Install solc shell: bash run: | cargo install svm-rs svm install 0.8.25 svm use 0.8.25 - name: Remove preinstalled Docker shell: bash run: | docker system prune -a --volumes sudo apt remove -y *docker* # Install uidmap which will be required for the explicitly installed Docker sudo apt install uidmap if: runner.os == 'Linux' - name: Update system dependencies shell: bash run: | sudo apt update -y sudo apt upgrade -y sudo apt autoremove -y sudo apt clean if: runner.os == 'Linux' - name: Install rootless Docker uses: docker/setup-docker-action@b60f85385d03ac8acfca6d9996982511d8620a19 with: rootless: true if: runner.os == 'Linux' # - name: Cache Rust # uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43