Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions lib/travis/build/bash/travis_setup_postgresql.bash
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ travis_setup_postgresql() {
version='16'
;;
*)
echo -e "${ANSI_RED}Unrecognized operating system.${ANSI_CLEAR}"
:
;;
esac
fi

echo -e "${ANSI_YELLOW}Starting PostgreSQL v${version}${ANSI_CLEAR}"
export PATH="/usr/lib/postgresql/${version}/bin:$PATH"
export PATH="/usr/lib/postgresql/${version}/bin:$PATH" 2>/dev/null

if [[ "${TRAVIS_INIT}" == upstart ]]; then
start_cmd="sudo service postgresql start ${version}"
Expand All @@ -42,7 +42,9 @@ travis_setup_postgresql() {
stop_cmd="sudo systemctl stop postgresql"
fi

${stop_cmd}
${stop_cmd} &>/dev/null

sudo pg_createcluster ${version} main &>/dev/null

sudo bash -c "
if [[ -d /var/ramfs && ! -d \"/var/ramfs/postgresql/${version}\" ]]; then
Expand All @@ -51,13 +53,12 @@ travis_setup_postgresql() {
fi
" &>/dev/null

${start_cmd}
echo "${start_cmd}"
${start_cmd} &>/dev/null

pushd / &>/dev/null || true
for port in 5432 5433; do
sudo -u postgres createuser -s -p "${port}" travis
sudo -u postgres createdb -O travis -p "${port}" travis
done &>/dev/null
sudo -u postgres createuser -s -p "${port}" travis &>/dev/null
sudo -u postgres createdb -O travis -p "${port}" travis &>/dev/null
done
popd &>/dev/null || true
}
144 changes: 94 additions & 50 deletions lib/travis/build/script/android.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,101 @@ class Android < Script

def setup
super
set_android_environment_variables
if build_tools_desired.empty?
sh.echo "No build-tools version specified in android.components. Consider adding one of the following:", ansi: :yellow
sh.cmd "#{@sdkmanager_bin} --list | grep 'build-tools' | cut -d'|' -f1", echo: false, timing: false
sh.echo "The following versions are preinstalled:", ansi: :yellow
sh.cmd "for v in $(ls #{android_sdk_build_tools_dir} | sort -r 2>/dev/null); do echo build-tools-$v; done; echo", echo: false, timing: false

android_home = '/usr/local/android-sdk'
sh.echo "Using Android SDK at #{android_home}", ansi: :green
sh.export 'ANDROID_HOME', android_home, echo: true

sh.echo "Setting up sdkmanager", ansi: :green

# Najpierw sprawdzamy, czy sdkmanager jest dostępny w PATH
sdkmanager_path = nil
sdkmanager_cmd = nil

sh.cmd "command -v sdkmanager >/dev/null && echo \"FOUND_IN_PATH=YES\" || echo \"FOUND_IN_PATH=NO\"", echo: false, assert: true do |result|
if result.stdout.include?("FOUND_IN_PATH=YES")
sh.echo "sdkmanager available in PATH", ansi: :green
sdkmanager_cmd = "sdkmanager --sdk_root=\"#{android_home}\""
else
sh.echo "sdkmanager not available in PATH, checking specific locations", ansi: :yellow

# Sprawdzamy konkretną ścieżkę, którą widzimy w logach
sdkmanager_path = "#{android_home}/cmdline-tools/bin/sdkmanager"

sh.cmd "test -f \"#{sdkmanager_path}\" && echo \"FOUND=YES\" || echo \"FOUND=NO\"", echo: false, assert: true do |path_result|
if path_result.stdout.include?("FOUND=YES")
sh.echo "Found sdkmanager at #{sdkmanager_path}", ansi: :green
sdkmanager_cmd = "\"#{sdkmanager_path}\" --sdk_root=\"#{android_home}\""
else
sdkmanager_path = nil
sh.echo "sdkmanager not found at expected location", ansi: :yellow
end
end
end
end

# Jeśli nadal nie mamy sdkmanager, dodajemy narzędzia Android do PATH
if sdkmanager_cmd.nil?
sh.echo "Trying to add Android tools to PATH", ansi: :yellow
sh.export 'PATH', "#{android_home}/cmdline-tools/bin:#{android_home}/tools/bin:#{android_home}/platform-tools:$PATH", echo: true

sh.cmd "command -v sdkmanager >/dev/null && echo \"NOW_FOUND=YES\" || echo \"NOW_FOUND=NO\"", echo: false, assert: true do |result|
if result.stdout.include?("NOW_FOUND=YES")
sh.echo "sdkmanager now available in PATH after adjustment", ansi: :green
sdkmanager_cmd = "sdkmanager --sdk_root=\"#{android_home}\""
else
sh.echo "sdkmanager still not available in PATH", ansi: :red
end
end
end

# Używamy komendy sdkmanager, jeśli jest dostępna
if sdkmanager_cmd
sh.echo "Using sdkmanager command: #{sdkmanager_cmd}", ansi: :green

if build_tools_desired.empty?
sh.echo "No build-tools version specified in android.components. Available versions:", ansi: :yellow
sh.cmd "#{sdkmanager_cmd} --list | grep 'build-tools' | cut -d'|' -f1 || echo 'Failed to list build-tools'", echo: true, assert: true

sh.echo "Preinstalled versions:", ansi: :yellow
sh.cmd "ls -la #{android_sdk_build_tools_dir} 2>/dev/null || echo 'None'", echo: true, assert: true
end

unless components.empty?
sh.echo "Installing Android components: #{components.join(', ')}", ansi: :green

sh.echo "Accepting SDK licenses"
sh.cmd "yes | #{sdkmanager_cmd} --licenses > /dev/null || echo 'License acceptance failed'", echo: true, assert: true

components.each do |name|
sh.echo "Installing component: #{name}", ansi: :yellow

sdk_name = if name =~ /^build-tools-(.+)$/
"build-tools;#{$1}"
elsif name == 'platform-tools'
"platform-tools"
elsif name == 'tools'
"tools"
elsif name =~ /^platforms-android-(.+)$/
"platforms;android-#{$1}"
elsif name =~ /^android-(.+)$/
"platforms;android-#{$1}"
elsif name =~ /^system-images-android-(.+)-(.+)-(.+)$/
"system-images;android-#{$1};#{$2};#{$3}"
elsif name =~ /^extra-google-(.+)$/
"extras;google;#{$1}"
elsif name =~ /^extra-android-(.+)$/
"extras;android;#{$1}"
else
name
end

sh.cmd "yes | #{sdkmanager_cmd} \"#{sdk_name}\" --verbose || echo 'Installation of #{name} failed'", echo: true, assert: true
end
end
else
sh.echo "Could not find sdkmanager, Android build may fail", ansi: :red
end
install_sdk_components unless components.empty?
end

def script
Expand All @@ -37,49 +124,6 @@ def script

private

def set_android_environment_variables
android_home = ENV['ANDROID_HOME'] || '/usr/local/android-sdk'
sh.export 'ANDROID_HOME', android_home
@sdkmanager_bin = "#{android_home}/cmdline-tools/bin/sdkmanager"
sh.export 'PATH', "#{File.dirname(@sdkmanager_bin)}:#{android_home}/tools:#{android_home}/tools/bin:#{android_home}/platform-tools:$PATH"
sh.cmd "mkdir -p #{File.dirname(@sdkmanager_bin)}", echo: false
end

def install_sdk_components
sh.fold 'android.install' do
sh.echo 'Installing Android dependencies'
android_home = ENV['ANDROID_HOME'] || '/usr/local/android-sdk'
sh.cmd "yes | #{@sdkmanager_bin} --sdk_root=#{android_home} --licenses >/dev/null || true", echo: true
components.each do |name|
sh.cmd install_sdk_component(name)
end
end
end

def install_sdk_component(name)
android_home = ENV['ANDROID_HOME'] || '/usr/local/android-sdk'
sdk_name = if name =~ /^build-tools-(.+)$/
"build-tools;#{$1}"
elsif name =~ /^platform-tools-(.+)$/
"platform-tools"
elsif name =~ /^tools-(.+)$/
"tools"
elsif name =~ /^platforms-android-(.+)$/
"platforms;android-#{$1}"
elsif name =~ /^android-(.+)$/
"platforms;android-#{$1}"
elsif name =~ /^system-images-android-(.+)-(.+)-(.+)$/
"system-images;android-#{$1};#{$2};#{$3}"
elsif name =~ /^extra-google-(.+)$/
"extras;google;#{$1}"
elsif name =~ /^extra-android-(.+)$/
"extras;android;#{$1}"
else
name
end
"yes | #{@sdkmanager_bin} --sdk_root=#{android_home} \"#{sdk_name}\" --verbose"
end

def build_tools_desired
components.map do |component|
if component =~ /^build-tools-(?<version>[\d\.]+)$/
Expand Down
5 changes: 3 additions & 2 deletions public/version-aliases/ghc.json
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,8 @@
"9.4.7": "9.4.7",
"9.4.8": "9.4.8",
"9.6.0.20230111": "9.6.0.20230111",
"9.6.x": "9.6.6",
"9.6": "9.6.6",
"9.6.x": "9.6.7.20250131",
"9.6": "9.6.7.20250131",
"9.6.0.20230128": "9.6.0.20230128",
"9.6.0.20230210": "9.6.0.20230210",
"9.6.0.20230302": "9.6.0.20230302",
Expand All @@ -211,6 +211,7 @@
"9.6.4": "9.6.4",
"9.6.5": "9.6.5",
"9.6.6": "9.6.6",
"9.6.7.20250131": "9.6.7.20250131",
"9.8.0.20230727": "9.8.0.20230727",
"9.8.x": "9.8.4",
"9.8": "9.8.4",
Expand Down