-
Notifications
You must be signed in to change notification settings - Fork 188
Update cross build, Travis and Appveyor-CI #456
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
5da8f76
33d2189
e75a379
ab25833
dcc8731
6299be6
a18a275
42f90a7
a8e617e
a35ac89
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,35 +22,39 @@ def do_help | |
|
||
# Make sure to check the ports path for the configured host | ||
host = RbConfig::CONFIG['host'] | ||
project_dir = File.join(['..']*4) | ||
project_dir = File.expand_path("../../..", __FILE__) | ||
freetds_ports_dir = File.join(project_dir, 'ports', host, 'freetds', FREETDS_VERSION) | ||
freetds_ports_dir = File.expand_path(freetds_ports_dir) | ||
|
||
# Add all the special path searching from the original tiny_tds build | ||
# order is important here! First in, last searched. | ||
# order is important here! First in, first searched. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Curious for my own understanding, why was it this order worked in the past but is now a problem? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Previously we used a side effect of calling dir_config multiple times. This doesn't work any longer on Ruby-2.7. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see, thanks for explaining. Is it odd in retrospect that we were calling dir_config in a loop rather than setting up the directories in the right order? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think so. |
||
DIRS = %w( | ||
/usr/local | ||
/opt/local | ||
/usr/local | ||
) | ||
|
||
# Add the ports directory if it exists for local developer builds | ||
DIRS.unshift(freetds_ports_dir) if File.directory?(freetds_ports_dir) | ||
|
||
# Grab freetds environment variable for use by people on services like | ||
# Heroku who they can't easily use bundler config to set directories | ||
DIRS.push(ENV['FREETDS_DIR']) if ENV.has_key?('FREETDS_DIR') | ||
|
||
# Add the ports directory if it exists for local developer builds | ||
DIRS.push(freetds_ports_dir) if File.directory?(freetds_ports_dir) | ||
DIRS.unshift(ENV['FREETDS_DIR']) if ENV.has_key?('FREETDS_DIR') | ||
|
||
# Add the search paths for freetds configured above | ||
DIRS.each do |path| | ||
idir = "#{path}/include" | ||
ldirs = DIRS.flat_map do |path| | ||
ldir = "#{path}/lib" | ||
[ldir, "#{ldir}/freetds"] | ||
end | ||
|
||
dir_config('freetds', | ||
[idir, "#{idir}/freetds"], | ||
[ldir, "#{ldir}/freetds"] | ||
) | ||
idirs = DIRS.flat_map do |path| | ||
idir = "#{path}/include" | ||
[idir, "#{idir}/freetds"] | ||
end | ||
|
||
puts "looking for freetds headers in the following directories:\n#{idirs.map{|a| " - #{a}\n"}.join}" | ||
puts "looking for freetds library in the following directories:\n#{ldirs.map{|a| " - #{a}\n"}.join}" | ||
dir_config('freetds', idirs, ldirs) | ||
|
||
have_dependencies = [ | ||
find_header('sybfront.h'), | ||
find_header('sybdb.h'), | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of the changes to this matrix list are surprising:
24-x64
,25
, and26-x64
? If it's for overall speed concerns, I'd think that the ongoing verification is preferable to saving a few minutes per PRThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed some Ruby versions because one CI run takes almost two hours otherwise and testing all Ruby versions on add architectures has little value. Errors that affect only a single Ruby version on a single architecture are very rare.
Ruby-2.7 is not yet available in appveyor.
Testing on Ruby head is good to get early hints about incompatibilities or deprecations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeouch, I didn't know it was that bad.... I'm on board with slimming down the list then. Also this & the fact that it's so slow is making me want to revisit our overall CI config (later....)