Skip to content

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

Merged

Conversation

larskanis
Copy link
Member

This PR includes #455 . It adds ruby versions 2.6 and 2.7 to Windows binary gems and updates and fixes Appveyor and Travis CI. It also adds ruby-head to Appveyor-CI. It removes rubies before 2.4 and some necessary workarounds. OpenSSL and FreeTDS are updated to the latest release versions.

Appveyor needs to be re-enabled for this repository to be effective.

aharpervc and others added 10 commits February 7, 2020 10:14
- Add Ruby-head version
- Remove outdated ruby versions
- Decrease number of ruby versions, so that tests run faster
- Run all tests, even when a test fails
- Add Ruby-head version
- Remove outdated ruby versions
- Decrease number of ruby versions, so that tests run faster
- Run all tests, even when a test fails
- Make use of Appveyors dual core CPUs
…is/tiny_tds into sync-cross-compile-and-ci-config
This fixes broken 32 bit build on Appveyor-CI.

Also print config.log to ease debugging.
Copy link
Contributor

@aharpervc aharpervc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for spending some time to get this working.

- ruby_version: "26"
- ruby_version: "head-x64"
Copy link
Contributor

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:

  • why remove 24-x64, 25, and 26-x64? If it's for overall speed concerns, I'd think that the ongoing verification is preferable to saving a few minutes per PR
  • any limit against adding ruby 2.7?
  • personally, I don't think testing against head builds is necessary, but I'm not opposed to it

Copy link
Member Author

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI run takes almost two hours

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....)

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.
Copy link
Contributor

Choose a reason for hiding this comment

The 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?

Copy link
Member Author

Choose a reason for hiding this comment

The 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.

Copy link
Contributor

Choose a reason for hiding this comment

The 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?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so.

@aharpervc
Copy link
Contributor

This seems fine with me to merge

@larskanis
Copy link
Member Author

@aharpervc Can you merge this? You should have the permission to do so. However you don't seem to have permissions to release tiny_tds on rubygems.org. @metaskills Could you add @aharpervc to rubygems.org? Any other opinions?

@metaskills
Copy link
Member

@metaskills Could you add @aharpervc to rubygems.org? Any other opinions?

I can add anyone needed to ruby gems. I just need their email address. You can DM this on Twitter (same metaskills user name) if y'all want or obfuscate it here too.

@aharpervc
Copy link
Contributor

@aharpervc Can you merge this? You should have the permission to do so.

Happy to, although I assumed you could as well since you're listed as a member?

I can add anyone needed to ruby gems. I just need their email address. You can DM this on Twitter (same metaskills user name) if y'all want or obfuscate it here too.

I just emailed you

@larskanis
Copy link
Member Author

Happy to, although I assumed you could as well since you're listed as a member?

Sure, but I'd like to stay a contributor only and don't want to maintain a project, that I use rarely. I'm glad if you could do maintenance, if Ken doesn't have the time to.

@metaskills
Copy link
Member

The only thing I have time for is to help others adopt and service this project. Just point me to who needs perms and where :)

@aharpervc aharpervc merged commit 7fb8580 into rails-sqlserver:master Feb 25, 2020
@aharpervc
Copy link
Contributor

Well I expected appveyor to run the job when I merged this PR, but it doesn't look like that happened: https://ci.appveyor.com/project/rails-sqlserver/tiny-tds/history

Something might need to get turned on over there, but if so I don't have access

@metaskills
Copy link
Member

I approved the Appveyor addition. Let me know if I can do anything else.

@aharpervc
Copy link
Contributor

aharpervc commented Mar 2, 2020

Looks like something is missing as I am still not seeing a new version on https://rubygems.org/gems/tiny_tds/versions or is there a delay before it shows up @aharpervc ?

No new version has been published yet, because no new version has been prepared yet, because appveyor isn't running the tests yet, because of some unknown reason. I hope to be able to revisit that question this week.

@larskanis
Copy link
Member Author

I just added #459, but Appveyor is still not running on the repository.
@metaskills , @aharpervc Did you add tiny_tds as new project here? https://ci.appveyor.com/projects/new

@aharpervc
Copy link
Contributor

No, but that may be due to a problem on my end... Appveyor wants to "Authorize as GitHub App" or "Authorize as OAuth App", and I'm not sure what the implications are for this org/repo. Which one did you pick?

@larskanis
Copy link
Member Author

@aharpervc I think "Authorize as GitHub App".

@aharpervc
Copy link
Contributor

@aharpervc I think "Authorize as GitHub App".

Alright, I gave that a try. It looks like the request will need to be approved by a rails-sqlserver org admin

@metaskills
Copy link
Member

I think I just authorized that.

@aharpervc
Copy link
Contributor

aharpervc commented Mar 3, 2020

Thanks, I tried to complete the process by adding Appveyor to this repo, but then I got an error saying it can only be done by an org owner:

image

@metaskills
Copy link
Member

OK, I just invited you as an admin to our Appveyor account. From there you can authorize it via your account. Reminder, Microsoft still pays for this account too and it looks like the CC is valid till 2021 too.

Screen Shot 2020-03-06 at 7 05 57 AM

@aharpervc
Copy link
Contributor

Thanks, I can now see the tiny_tds project.

From the events log it seems that appveyor was notified when this PR was merged to master, but declined to run the job due to not finding appveyor.yml (which is odd because it definitely is right there).

image

I suspect appveyor might be looking at an outdated version of the repo, because when I tried to just have it run a build manually, I got this error:

image

I'm not sure what credentials it might be trying, so I returned to the authorizations page here: https://ci.appveyor.com/account/rails-sqlserver/authorizations and tried to run "Authorize as GitHub App" as described above, but again got the error This action must be performed by an organization owner.

@metaskills I think you might need to click that install button in appveyor to get it to reconnect to this repo, can you review that when you have a moment?

@metaskills
Copy link
Member

Thanks, we are getting close. I did not want to click it because it would get access to Custom Ink's account too. So I just changed you to an org owner too.

@metaskills
Copy link
Member

@wpolicarpo Just made you an org owner as well.

@aharpervc
Copy link
Contributor

Alright I was able to start the build manually, and it grabbed the latest code from master and is building right now.

@MadsNielsen
Copy link

Same. We're also depending heavily on this gem. @aharpervc

@aae42
Copy link

aae42 commented Apr 1, 2020

is anyone still working on this? so close!

@aharpervc
Copy link
Contributor

I will revisit this and try to cut a new release this week or next week, if I can

@vifrac
Copy link

vifrac commented Apr 2, 2020

I will revisit this and try to cut a new release this week or next week, if I can

Hey, very thanks for your work, I too wait for this update

@Reppinger
Copy link

Thanks to all who contributed. I will temporarily roll back to ruby 2.5 which causes me no problems right now. Looking forward to going back to 2.6. Thanks, @aharpervc !

@ecentell-CPF
Copy link
Contributor

Thank you for #462 and i can see it up on https://rubygems.org/gems/tiny_tds/versions/2.1.3.pre-x64-mingw32 !

@aharpervc
Copy link
Contributor

It took awhile, but 2.1.3 has now been released

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants