@@ -709,9 +709,55 @@ runs:
709
709
run : |
710
710
echo "::group::Vale style checking"
711
711
712
- # Make sure Vale is installed
713
- if ! command -v vale &> /dev/null; then
714
- echo "Vale not found. Skipping style checks."
712
+ # Explicitly install Vale if needed
713
+ echo "Installing Vale for style checking..."
714
+ VALE_INSTALLED=false
715
+
716
+ # First try using the existing vale command if available
717
+ if command -v vale &> /dev/null; then
718
+ echo "Vale already installed"
719
+ VALE_INSTALLED=true
720
+ else
721
+ # On Ubuntu, try to use pre-installed vale or install it
722
+ if [ -f "/usr/local/bin/vale" ]; then
723
+ echo "Found Vale in /usr/local/bin/"
724
+ export PATH="/usr/local/bin:$PATH"
725
+ VALE_INSTALLED=true
726
+ else
727
+ # Try to install Vale using available package managers
728
+ if command -v brew &> /dev/null; then
729
+ echo "Installing Vale using Homebrew..."
730
+ brew install vale
731
+ VALE_INSTALLED=true
732
+ elif command -v apt-get &> /dev/null; then
733
+ echo "Installing Vale using apt..."
734
+ # Download and install the latest version
735
+ OS=$(uname -s | tr '[:upper:]' '[:lower:]')
736
+ ARCH=$(uname -m)
737
+ if [ "$ARCH" = "x86_64" ]; then
738
+ ARCH="64-bit"
739
+ elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
740
+ ARCH="arm64"
741
+ fi
742
+
743
+ LATEST_RELEASE_URL=$(curl -s https://api.github.com/repos/errata-ai/vale/releases/latest | grep "browser_download_url.*${OS}_${ARCH}.tar.gz" | cut -d '"' -f 4)
744
+ if [ -n "$LATEST_RELEASE_URL" ]; then
745
+ echo "Downloading Vale from $LATEST_RELEASE_URL"
746
+ curl -sL "$LATEST_RELEASE_URL" -o vale.tar.gz
747
+ tar -xzf vale.tar.gz
748
+ sudo mv vale /usr/local/bin/
749
+ VALE_INSTALLED=true
750
+ fi
751
+ fi
752
+ fi
753
+ fi
754
+
755
+ # Verify Vale is installed and working
756
+ if [ "$VALE_INSTALLED" = "true" ] && command -v vale &> /dev/null; then
757
+ echo "Vale installed successfully"
758
+ vale --version
759
+ else
760
+ echo "Vale installation failed. Skipping style checks."
715
761
echo "status=skipped" >> $GITHUB_OUTPUT
716
762
echo "message=Vale not installed" >> $GITHUB_OUTPUT
717
763
echo "::endgroup::"
0 commit comments