Skip to content
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

Update Qt binaries for GitHub Action CI job #17789

Closed
wants to merge 2 commits into from

Conversation

sipsorcery
Copy link
Member

Also add new job version flag to allow vcpkg dependencies to be reinstalled whenever the job version flag is bumped.

Fix for #17788.

@fanquake fanquake added the Tests label Dec 22, 2019
@maflcko
Copy link
Member

maflcko commented Dec 22, 2019

Is there no way to hardcode the compiler version and then bump it together with the qt binaries? Otherwise it will be an endless cat-mouse game with appveyor/GitHub CI

Also add new job version flag to allow vcpkg dependencies to be reinstalled whenever the job version flag is bumped.
@sipsorcery
Copy link
Member Author

@MarcoFalke how would it work with tracking the compiler version?

The Qt binaries have to be rebuilt manually so even if the CI job detects the compiler on the build image has changed the best it can do is display a better error message.

An additional complicating factor is Visual Studio is new getting updated as frequently as every two weeks. Not every update causes an ABI incompatibility. This particular issue has come about in Visual Studio 2019 16.4. The 16.1, 16.2, 16.3 and other minor version updates didn't break ABI compatibility.

I don't think it's a coincidence that since "automated" CI became a thing DevOps roles have also taken off. The latter to look after the former. We're in the same boat. Over time I'd expect the "automated" CI's will start adding features like detecting vcpkg and other dependencies being out of date and automatically reinstalling.

@hebasto
Copy link
Member

hebasto commented Dec 22, 2019

Testing... Step "Update vcpkg and install packages" took 23 minutes.

@sipsorcery
Copy link
Member Author

@hebasto that's right. To resolve the libzmq ABI error the safest thing to do is to reinstall all the vcpkg packages. If the job is successful the vcpkg install directory will be cached and the step will be skipped on subsequent builds.

@hebasto
Copy link
Member

hebasto commented Dec 22, 2019

@sipsorcery
The excerpt from the log of the "Build" step:

Component too big for incremental LTCG with 32-bit toolset, build without incremental LTCG; Consider switching to 64-bit toolset.

It is weird, isn't it?

@sipsorcery
Copy link
Member Author

That warning has always been there. I've never worried about it. I guess it's because the GitHub and Appveyor vm's load a 32 bit msvc build environment. It doesn't affect the code generation since the build job set the target architecture as 64 bit.

Seems there's an easy fix. I'll test it out.

@hebasto
Copy link
Member

hebasto commented Dec 22, 2019

@sipsorcery

If the job is successful the vcpkg install directory will be cached and the step will be skipped on subsequent builds.

The first job is successful.
But it seems the vcpkg install step is not skipped on subsequent builds.

Something wrong with cache?

UPDATE
The excerpt from the log of "Post actions/cache@v1" step:

Post job cleanup.
"C:\Program Files\Git\usr\bin\tar.exe" -cz --force-local -f d:/a/_temp/5482216c-afb5-4ca3-92d5-879e4115cda0/cache.tgz -C C:/jobversion/$JOB_VERSION .
/usr/bin/tar: C\:/jobversion/$JOB_VERSION: Cannot open: No such file or directory
/usr/bin/tar: Error is not recoverable: exiting now
[warning]The process 'C:\Program Files\Git\usr\bin\tar.exe' failed with exit code 2

@maflcko
Copy link
Member

maflcko commented Dec 22, 2019

@MarcoFalke how would it work with tracking the compiler version?

Instead of runs-on: windows-latest I was hoping for something like windows-msvc-16.2, so that we know exactly which compiler is used.

@hebasto
Copy link
Member

hebasto commented Dec 22, 2019

@sipsorcery
Testing 1b1b8a5

The excerpt from the log of "Run actions/cache@v1" step on a subsequent build:

Run actions/cache@v1
  with:
    path: C:/jobversion/1
    key: jobversion
  env:
    PYTHONUTF8: 1
    QT_DOWNLOAD_URL: https://github.com/sipsorcery/qt_win_binary/releases/download/v1.6/Qt5.9.8_x64_static_vs2019.zip
    QT_DOWNLOAD_HASH: 9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21
    QT_LOCAL_PATH: C:\Qt5.9.8_x64_static_vs2019
    VCPKG_INSTALL_PATH: $env:VCPKG_INSTALLATION_ROOT/installed
    PLATFORM: x64
    JOB_VERSION: 1
    pythonLocation: C:\hostedtoolcache\windows\Python\3.7.5\x64
Cache not found for input keys: jobversion.

@hebasto
Copy link
Member

hebasto commented Dec 23, 2019

@MarcoFalke

Instead of runs-on: windows-latest I was hoping for something like windows-msvc-16.2, so that we know exactly which compiler is used.

From GitHub Actions Docs:

Available GitHub-hosted runner types are:
Windows Server 2019 | windows-latest

@maflcko
Copy link
Member

maflcko commented Dec 23, 2019

Concept ACK, I guess

@hebasto
Copy link
Member

hebasto commented Dec 23, 2019

Concept ACK.

@sipsorcery
Copy link
Member Author

This PR is not ready for merge. The job version mechanism is not working. The GithHub cache action does not work the way I expected.

I'm still working on a fix.

@DrahtBot
Copy link
Contributor

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #17793 (ci: Update GitHub Actions CI vcpkg cache on MSBuild update by hebasto)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@sipsorcery
Copy link
Member Author

Closed in favour of #17793.

@sipsorcery sipsorcery closed this Dec 23, 2019
fanquake added a commit that referenced this pull request Dec 23, 2019
0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see #17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to #17789
  - fixes #17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jun 27, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jun 28, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jun 29, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jul 1, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jul 1, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jul 14, 2021
…ild update

0b5a366 ci: Update vcpkg cache on MSBuild update (Hennadii Stepanov)
b6fa752 ci: Update Qt binaries for GitHub Actions (Hennadii Stepanov)

Pull request description:

  On master (0cda557) Visual Studio update in GitHub Actions CI virtual environment could break a build as the `vcpkg` cache is not updated accordingly (see bitcoin#17788).

  This PR:
  - force vcpkg cache update on MSBuild update
  - is an alternative to bitcoin#17789
  - fixes bitcoin#17788

ACKs for top commit:
  fanquake:
    ACK 0b5a366

Tree-SHA512: b9e69cb5184a3bbee4c7b14ac35985145a9fd3403d0e449d79f15c18e9660cafec495d639f5f730e0c69dde5f4a3d7590b4e42d385e794cd02add1f4e3b785e7
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Feb 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants