diff --git a/.github/workflows/cross-platform-install-test.yml b/.github/workflows/cross-platform-install-test.yml index 2c630eaf9..33d2955f8 100644 --- a/.github/workflows/cross-platform-install-test.yml +++ b/.github/workflows/cross-platform-install-test.yml @@ -5,7 +5,8 @@ on: branches: - master - pull_request: + pull_request_target: + types: [opened, reopened] branches: - master @@ -32,10 +33,21 @@ jobs: echo "BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV fi - # Run the installation script + # Run the merod script - name: Test installation script run: | - curl -s https://raw.githubusercontent.com/calimero-network/core/${{ env.BRANCH_NAME }}/scripts/install.sh | bash + curl -s https://raw.githubusercontent.com/calimero-network/core/${{ env.BRANCH_NAME }}/scripts/install-merod.sh | bash + + # Validate the binary installation + - name: Validate installation + run: | + which meroctl + merod --version + + # Run the meroctl script + - name: Test installation script + run: | + curl -s https://raw.githubusercontent.com/calimero-network/core/${{ env.BRANCH_NAME }}/scripts/install-meroctl.sh | bash # Validate the binary installation - name: Validate installation diff --git a/scripts/install.sh b/scripts/install-meroctl.sh similarity index 99% rename from scripts/install.sh rename to scripts/install-meroctl.sh index 50f0ab6bc..945efac6a 100755 --- a/scripts/install.sh +++ b/scripts/install-meroctl.sh @@ -1,7 +1,7 @@ #!/bin/bash BINARY_NAME="meroctl" -VERSION="v0.1.1" +VERSION="v0.2.0" REPO="calimero-network/core" INSTALL_DIR="$HOME/.local/bin" diff --git a/scripts/install-merod.sh b/scripts/install-merod.sh new file mode 100755 index 000000000..bde848cce --- /dev/null +++ b/scripts/install-merod.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +BINARY_NAME="merod" +VERSION="v0.2.1" +REPO="calimero-network/core" +INSTALL_DIR="$HOME/.local/bin" + +# Detect OS and Architecture +OS=$(uname | tr '[:upper:]' '[:lower:]') +ARCH=$(uname -m) + +case "$ARCH" in + "x86_64") ARCH="x86_64" ;; + "arm64" | "aarch64") ARCH="aarch64" ;; + *) + echo "Unsupported architecture: $ARCH." + exit 1 + ;; +esac + +if [ "$OS" == "darwin" ]; then + PLATFORM="apple-darwin" +elif [ "$OS" == "linux" ]; then + PLATFORM="unknown-linux-gnu" +else + echo "Unsupported operating system: $OS." + exit 1 +fi + +# Construct download URL +TARBALL_NAME="${BINARY_NAME}_${ARCH}-${PLATFORM}.tar.gz" +DOWNLOAD_URL="https://github.com/$REPO/releases/download/$VERSION/$TARBALL_NAME" + +# Ensure installation directory exists +mkdir -p "$INSTALL_DIR" + +# Download binary tarball +echo "Downloading $TARBALL_NAME from $DOWNLOAD_URL..." +curl -L -o "$TARBALL_NAME" "$DOWNLOAD_URL" + +# Extract binary +echo "Extracting $TARBALL_NAME..." +tar -xzf "$TARBALL_NAME" +chmod +x "$BINARY_NAME" + +# Move binary to user-local bin directory +mv "$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME" +rm "$TARBALL_NAME" + +# Add $HOME/.local/bin to PATH if not already present +if ! echo "$PATH" | grep -q "$INSTALL_DIR"; then + SHELL_CONFIG_FILE="$HOME/.bashrc" + case "$SHELL" in + */zsh) SHELL_CONFIG_FILE="$HOME/.zshrc" ;; + */fish) SHELL_CONFIG_FILE="$HOME/.config/fish/config.fish" ;; + */csh|*/tcsh) SHELL_CONFIG_FILE="$HOME/.cshrc" ;; + esac + + echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$SHELL_CONFIG_FILE" + echo "Added $HOME/.local/bin to PATH in $SHELL_CONFIG_FILE. Please reload your shell or run: source $SHELL_CONFIG_FILE" +fi + +# Final message +echo "$BINARY_NAME installed successfully in $INSTALL_DIR." +echo "To verify the installation, make sure $INSTALL_DIR is in your PATH." +echo "Run the following command to update your current shell session if needed:" +echo "source " +echo "Then run '$BINARY_NAME --version' to confirm the installation."