Commit Graph

331 Commits

Author SHA1 Message Date
Florian Bruhin 3a956b4097 ci: Add preliminary PyQt 6.8 environment
See #8242
2024-12-09 20:16:27 +01:00
Florian Bruhin bb652cc108 ci: Fix up Python versions
Follow-up to b1ad5c2e30
2024-12-09 20:14:10 +01:00
Florian Bruhin b1ad5c2e30 ci: Use Python 3.13
- Newest Linux/macOS/Windows environments (should be roughly same as release,
  especially for Windows/macOS)
- Nightly binary builds
- Release automation

Closes #8205
2024-12-09 16:14:48 +01:00
Florian Bruhin 3dce208237 Use Python 3.12 for nightly builds 2024-12-06 20:39:58 +01:00
Florian Bruhin 69ac04d389 Drop macOS 12
The GHA runner is gone now: https://github.com/actions/runner-images/issues/10721

Closes #8327
2024-12-04 20:56:22 +01:00
dependabot[bot] 4b7cc881ec Bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-24 00:06:49 +00:00
Florian Bruhin af884a02c8 ci: Upgrade codecov action 2024-11-10 20:01:44 +01:00
Florian Bruhin ffe7d00a62 Merge branch 'drop-py38' 2024-10-15 11:58:54 +02:00
Florian Bruhin 6bf159581e
Merge pull request #8301 from qutebrowser/dependabot/github_actions/peter-evans/create-pull-request-7
Bump peter-evans/create-pull-request from 6 to 7
2024-10-13 21:51:28 +02:00
Florian Bruhin bd3774dfc8 Drop Python 3.8 from tox/CI 2024-10-13 18:24:44 +02:00
toofar 3a48111e53 update node version for eslint
Github is updating all their actions to node 20, may as well do the same
here? Not strong need to update it, just spotted this.
2024-10-05 13:55:15 +13:00
toofar fc9fe75033 Remove qt5 nightly jobs
They require maintenance, but we don't have a great need for Qt5 builds.
See https://github.com/qutebrowser/qutebrowser/issues/8260

All the Qt5 switches are still in tox, the build release script and the
nsis installer.
2024-10-05 13:29:50 +13:00
dependabot[bot] cff456f232
Bump peter-evans/create-pull-request from 6 to 7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 18:43:12 +00:00
toofar 914227ca1c Set TMPDIR to RUNNER_TEMP on CI
The upload artifact action can't collect artifacts from /tmp/ in the test
runners. So now that we are writing the screenshots that we want to collect
later to the pytest `tmp_path` location we need to make sure that lives
somewhere the later actions can find it.

Pytest uses `tempfile.gettempdir()` to find the temp dir, and that respects a
number of environment variables including `TMPDIR`. This commits sets TMPDIR
to RUNNER_TEMP in in our test runners to make pytest uses the temp dir that's
mounted into the action containers.

For the docker based runners I can use the `env` map, but for the ubuntu ones
it didn't let me expand `${{ runner.temp }}` in the end map under `step`, so
I'm writing it to the env file for the runner instead. It failed to parse the
action yaml and said:

    > Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp

For the user part of the `pytest-of-$user` directory, I looked at the new
screenshot related test summary lines to see what the user was called.
`runner` on the ubuntu containers and `user` in our docker containers. Pytest
maintains the "pytest-current" symlink to the latest temp folder.
2024-08-18 12:42:35 +12:00
toofar a3238eb494 upload e2e failure screenshots as artifacts
This commit takes a screenshot of the active browser window when an
end2end test fails. When running on CI a zip file of screenshots will be
attached to the run summary as an artifact. When run locally screenshots
will be left in /$TMPDIR/pytest-screenshots/.

The screenshot is of the Xvfb screen that the tests are running under.
If there are multiple windows open it will likely only show the active
window because a) we aren't running with a window manager b) the Xvfb
display is, by default, the same size as the browser window.

I'm not sure if xvfb is used on the Window runs in CI. We could fall
back to trying to take screenshots if not running under xvfb but I'm a
bit wary of an automatic feature that takes screenshots of people's
desktops when running locally. Even if they just to to /tmp/ it might be
surprising. We can change it later if it turns out we need to try to
take screenshots in more cases.

I'm using pillow ImageGrab, the same as pyvirtualdisplay.smartdisplay. I'm
getting the display number from the pytest-xvfb plugin and formatting it
appropriately (pyvirtualdisplay has an already formatted one which is used by
the smartdisplay, but that's not accessible).

Pillow is now a requirement for running the tests. I thought about making
it gracefully not required but I'm not sure how to inform the user with
a warning from pytest, or if they would even want one. Maybe we could
add a config thing to allow not taking screenshots?

I had to bump the colordepth config for pytest-xvfb otherwise pillow
complained that the default 16bit color depth wasn't supported as it
only supports 24bit, see https://github.com/python-pillow/Pillow/blob/1138ea5370cbda5eb328ec949
8c314d376c81265/src/display.c#L898

I'm saving screenshots to a temp dir because I don't want to put them in
my workdir when running locally. I want to clear the directory for each
run so that you don't get confused by looking at old images. I'm not
100% sure about the lifecycle of the process classes though. Eg if we
have two processes they might both try to create the output directory.
I'm using pytest.session.stash to save the directory so perhaps the
lifecycle of the stash will handle that? Not sure.

Ideally the images would be uploaded somewhere where we could click
through and open them in the browser without having to download a zip
file, but I'm not sure how to achieve that.

It would be nice to print in the test logs that a screenshot was saved
and where to. Just so you could copy paste the filename instead of
having to match the sanitized filename against failing test names. But I
don't know how to log stuff from this stage in the pytest lifecycle.

TODO:
* I'm not sure that the screenshot captures the whole browser window?
  Maybe the browser windows is bigger than the X11 display?

Closes: #7625
2024-08-18 12:42:29 +12:00
Florian Bruhin b78fc5765a ci: Drop macOS 11
Will be dropped on GitHub Actions tomorrow:
https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/

For unit tests, we now run them on macOS 13 instead, thus testing on all three
macOS versions we currently support.

For releases, this forces us to now support macOS 12 as the oldest supported
version and drop macOS 11 support. Thus, we should not have a v3.2.2 release.

Not backporting this commit so CI fails there rather than silently bumping up
requirements.
2024-06-27 22:04:40 +02:00
dependabot[bot] 74ccf05be1
Bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 18:11:57 +00:00
Florian Bruhin 27164d0d6e Build separate Apple Silicon release
With GitHub Actions now providing macOS 14 runners with M1 chips, we can
build a separate Apple Silicon release there and upload it.

Universal wheels are currently not possible, see #8229 for details.

Closes #6478
2024-06-11 23:01:47 +02:00
toofar 22370b457f Install recent pdf.js in some CI jobs
This installs pdf.js in a selection of CI jobs. Previously the PDF.js
tests (in qutescheme.feature) were skipped in CI because it wasn't
installed anywhere. There has been a couple of recent cases where pdf.js
started depending on javascript features that are too new for even the
most recent QtWebEngine to support. The aim of this commit is to catch
that case. This doesn't add coverage for older webengine releases.

This also incidentally updates the ace editor in these test jobs, since that is
also updated by default by the update_3rdparty script. Hopefully that
doesn't cause issues.

The reasoning for installing on each type of job:

*ubuntu jobs*: not installed - while our main test runs are on ubuntu
  there is an upstream issue where many assets used by pdf.js (like icons
  used in the toolbar) aren't packaged, see #7904. This causes warning
  messages because assets requested via qutescheme can't be found, which
  causes the tests to fail. We could a) install pdf.js from source instead
  of using the ubuntu one b) ignore the warning logs c) skip this
  environment and rely on tests elsewhere. I've chosen to do (c). I don't
  see a huge benefit in testing pdf.js across multiple environments if we
  aren't using it installed from the OS anyway. We could install from
  source but currently all the Qt < 6.5 tests are failing from some other
  JS error, and I think fixing that is out of scope of this issue.

*docker Qt6*: installed - the archlinux pdfjs package works fine and we are
  only testing the most recent Qt versions because arch users are expected
  to stay up to date.

*docker Qt5*: not installed - doesn't support JS features required by
  PDF.js. I guess we could install the legacy build from source here. I'm
  mostly worried about catching new breakages for this commit though

*windows*: installed - we install pdf.js from source when making a
  release so it would be nice to do that in tests too.

*macos*: not installed - the tests that were catching the breakages are
  end2end tests which we don't run on mac. And I think there was an
  error from the :versions tests here, don't remember.

*bleeding edge*: installed - from source

pdf.js tests fail on Qt < 6.5 with `Uncaught TypeError: Cannot read
properties of null (reading 'mainContainer')`

The `TestPDFJSVersion.test_real_file` unit tests currently fails because
`version._pdfjs_version()` returns `unknown (bundled)`, not sure why. I
think this is pre-existing and it also wasn't being run on CI.
2024-05-25 09:41:44 +12:00
toofar 3f1842b729 Update requirements and CI for PyQt6.7
6.7 is released now, some distros are already shipping it!

This commit:
1. adds a new 6.7 requirements file (the plain 6 one has already been
   updated by the bot)
2. adds a new tox env referring to the new requirements file
3. updates the mac and windows installer jobs to run with pyqt67 with the
   assumption we'll be including that in our next release
4. adds two new CI environments for 6.7, one each for python 3.11 and 3.12
   (3.12 only came out like 6 months ago)
5. updates a couple of references to the py37 tox env that looked like they
   were missed, 3.7 support was dropped in 93c7fdd
6. updates various ubuntu containers to the latest LTS instead of the previous
   related one - this is quite unrelated to this change but I thought I would
   give it a go, no need to use the old one unless we are specifically testing
   on it?
   - linters - they use tox but probably use system libraries
   - these all run in nested containers anyway, should be fully isolated
   - codeql - eh, uses a third party action, check the docs if it fails
   - irc - as above
2024-05-24 17:08:56 +02:00
toofar 0a541983c3 Pin eslint for now until we support v9+
See https://github.com/qutebrowser/qutebrowser/issues/8159
2024-04-06 18:30:25 +13:00
dependabot[bot] 201a533b4d
build(deps): bump softprops/action-gh-release from 1 to 2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 18:29:51 +00:00
toofar 42cf53ae7c ci: don't fail all docker builds if one fails
Currently the unstable docker images are failing to build
(undefined symbol: _ZN5QFont11tagToStringEj, version
Qt_6. Looks like Qt has upgraded to 6.7 but pyqt6 hasn't been patched to
remove some symbols that are gone now).

But we might as well let the stable ones rebuild right?
2024-02-25 16:52:32 +13:00
toofar 5687177d4d ci: fix --debug patching on all platforms (for real?)
It seems `sed -i` is not very portable. Initially we were using this
command:

    sed -i '' '/.-d., .--debug.,/s/$/ default=True,/' qutebrowser/qutebrowser.py

and then that started breaking on windows, I'm not sure why, with "can't
read /.-d., .--debug.,/s/$/ default=True,/: No such file or directory".
Then we changed to:

    sed -i '/.-d., .--debug.,/s/$/ default=True,/' qutebrowser/qutebrowser.py

so without the extension argument, but that broke on mac with "1:
"qutebrowser/qutebrowser.py": extra characters at the end of q command"

then we tried:

    sed -i'' '/.-d., .--debug.,/s/$/ default=True,/' qutebrowser/qutebrowser.py

and that also broke on mac with the same error. On the recommendation of
stackoverflow I just changed it no not use in-place editing and do a
good old fashioned move afterwards. https://unix.stackexchange.com/questions/92895/how-can-i-achieve-portability-with-sed-i-in-place-editing

... record scratch ...

Apparently these GHA steps are being run in powershell in windows where
`mv` is implemented by `Move-Item` where you have to use -Force to
overwrite destination files.

But that's not portable. cp does happily overwrite without any
additional instruction though. So I'm doing cp instead of mv and then
removing the temp file.

Probably if this drags out anymore we should download something off of
pypi which is platform independent to handle it.
2024-02-25 16:30:27 +13:00
Florian Bruhin da2c7ee7cd ci: Try more sed cross-platform madness 2024-02-13 16:44:03 +01:00
dependabot[bot] 5f8423f9d3
build(deps): bump peter-evans/create-pull-request from 5 to 6
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 18:47:44 +00:00
Florian Bruhin c12340802d ci: Remove weird sed usage
Broke on Windows nightly builds for some reason
2024-02-02 11:06:04 +01:00
dependabot[bot] 238c97f71e
build(deps): bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 18:56:48 +00:00
toofar 04af4c657d
Merge pull request #8042 from qutebrowser/dependabot/github_actions/actions/upload-artifact-4
build(deps): bump actions/upload-artifact from 3 to 4
2023-12-21 11:42:39 +13:00
dependabot[bot] b84ae4053c
build(deps): bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 18:32:17 +00:00
dependabot[bot] 4c431fd22d
build(deps): bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 18:32:14 +00:00
dependabot[bot] 3d9bf9651f
build(deps): bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 18:33:46 +00:00
Florian Bruhin 4928153227 Upgrade release Python to 3.12 2023-12-08 15:44:18 +01:00
toofar dc072a7825 Allow running nightly builds on any branch
The nightly jobs have a `workflow_dispatch` action, which means you can
kick the job off on any branch. But the build steps has the branch to
build on hardcoded. I would like to be able to build windows and mac
builds without having a local build environment setup.

The docs for the checkout action says it default to the main branch,
so the scheduled actions should keep working fine. But now we'll be able
to create builds off of other branches too.
docs: https://github.com/actions/checkout#usage

ref: https://github.com/qutebrowser/qutebrowser/issues/7989
2023-11-15 20:36:41 +13:00
toofar 4227aba7ba Update mac and windows CI to target for next release
It looks like our last release builds were done with python 3.11 and
PyQt 6.5.3. I'm expecting that since PyQt6.6 is out now our next release
will be on 6.6. So lets update the CI to match.

Questions:
* what about python12? I don't think there is a benefit to updating to
  that, so lets leave it.
* what about pyqt6.5? Do we care about testing that? Maybe for homebrew
  users? We aren't providing new builds with an old Qt right?

last release builds: https://github.com/qutebrowser/qutebrowser/actions/runs/6578864884

ref: https://github.com/qutebrowser/qutebrowser/issues/7989
2023-11-15 20:36:41 +13:00
toofar 1683b74aba bump py311 and py12 tests to use pyqt6.6
I'm not sure if we need a py3.11 pyqt6.5 variant or a py3.10 pyqt6.6
one? Those might well be combinations that people have (debian has 3.11
and 6.5 at the moment) but how much coverage do we need?

ref: https://github.com/qutebrowser/qutebrowser/issues/7989
2023-11-15 20:36:41 +13:00
toofar b4215d31b3 py3.12 is released now
ref: https://github.com/qutebrowser/qutebrowser/issues/7989
2023-11-15 20:36:41 +13:00
dependabot[bot] a55f5332f9
build(deps): bump actions/github-script from 6 to 7
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 18:07:46 +00:00
dependabot[bot] f53933b329
build(deps): bump actions/setup-node from 3 to 4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 18:49:54 +00:00
Florian Bruhin 4f549669bc Revert "Use different PyPI token tempoarily"
This reverts commit 597873286c.
2023-10-19 19:58:42 +02:00
dependabot[bot] 363c8a7e5c
build(deps): bump docker/login-action from 2 to 3
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-20 12:45:29 +00:00
Florian Bruhin 59552ce75f
Merge pull request #7922 from qutebrowser/dependabot/github_actions/docker/build-push-action-5
build(deps): bump docker/build-push-action from 4 to 5
2023-09-20 14:34:37 +02:00
dependabot[bot] 385f8b2f7c
build(deps): bump docker/setup-buildx-action from 2 to 3
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 18:26:10 +00:00
dependabot[bot] 839a1ee8f4
build(deps): bump docker/build-push-action from 4 to 5
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 18:26:05 +00:00
dependabot[bot] 37172cf9cc
build(deps): bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 18:36:00 +00:00
Florian Bruhin 07e1376e64 ci: Fix changelog URL for releases 2023-08-18 18:19:21 +02:00
Florian Bruhin 597873286c Use different PyPI token tempoarily
See https://github.com/pypi/support/issues/3111
2023-08-18 16:14:27 +02:00
Florian Bruhin 8795b88d35 ci: Fix JS style issues 2023-08-17 14:51:53 +02:00
Florian Bruhin 9dfe641263 ci: Switch from experimental to real releases 2023-08-17 14:47:49 +02:00
Florian Bruhin 60eb849fad ci: Check for open milestone before release 2023-08-17 12:42:21 +02:00
Florian Bruhin bcbfc2b68c ci: Add IRC notification for main channel
Releases are probably important enough
2023-08-17 12:42:21 +02:00
Florian Bruhin 67ae39561a ci: Use -x for cherry picks 2023-08-17 12:42:21 +02:00
Florian Bruhin fa74860417 ci: Use earlier release ID 2023-08-17 12:42:21 +02:00
Florian Bruhin c10cda7d4a ci: Use github script to update release
See https://github.com/softprops/action-gh-release/issues/163
2023-08-17 12:42:21 +02:00
Florian Bruhin a59bf7bc5b ci: Set twine PyPI token 2023-08-17 12:39:00 +02:00
Florian Bruhin ab820fe8a0 ci: Set up asciidoc properly for releases 2023-08-17 12:39:00 +02:00
Florian Bruhin 13ddb50170 ci: More automatic release improvements/fixes 2023-08-17 12:36:25 +02:00
Florian Bruhin 9757fa79ee ci: Use GitHub Script to get release branch
By default, we only get a narrow checkout, so we don't know about any
other branches. Use the GitHub API and some JS to get the release branch
instead.
2023-08-17 12:36:25 +02:00
Florian Bruhin 950d06ad5b ci: Initial automatic release support
See #3725
2023-08-17 12:35:53 +02:00
Florian Bruhin a196344742 ci: Use proper image for Qt 6 bleeding tests 2023-08-15 19:31:36 +02:00
Florian Bruhin 8221fd7878 wip: Add Qt 6 bleeding tests to CI 2023-08-15 18:57:17 +02:00
Florian Bruhin 9a90a3950f wip: Add Qt 6 bleeding tests to CI 2023-08-15 18:30:00 +02:00
Florian Bruhin 3b1c3856a9
Merge pull request #7797 from pylbrecht/build-on-ci
Run package building on CI with warnings turned into errors
2023-08-10 12:14:23 +02:00
Philipp Albrecht 7d445e6617 Add CI job for package build
We want to run a package build in CI with warnings turned into exceptions, in order to
catch issues in CI (e.g. DeprecationWarning).
2023-08-09 12:46:58 +02:00
Florian Bruhin c2210539a9 Drop 32bit Windows release support
See #6050, still keeping open to track NSIS changes
2023-07-27 21:05:26 +02:00
Florian Bruhin 6478496ca3 Revert "Revert "Revert "ci: Remove Python 3.12 for now"""
This reverts commit 70e8dc63e8.

We're on PyQt 6.5.2 now, which should fix the segfaults on exit.
2023-07-24 20:12:52 +02:00
toofar 7724f72950 libxcb-cursor0 in dependencies job and install docs
I don't think the dependencies jbos needs to be installing asciidoc anymore either but oh
well.

I just grepped for libxcb-shape0 and constituently added libxcb-cursor0
after it. I haven't checked it's in stretch but it should be.

ref: 6f5de192e0
2023-07-24 23:04:51 +12:00
Florian Bruhin ec34865168 Move master branch references to main
Closes #7097
2023-07-23 11:38:19 +02:00
Florian Bruhin 8f34a2c9c6 ci: Fix issues 2023-06-30 19:29:28 +02:00
Florian Bruhin b5d5c7f4d3 More qt 6 tooling 2023-06-30 19:29:28 +02:00
Florian Bruhin ffc06e58d6 qt6: Switch most tooling/linting to Qt 6
Only mypy missing now...
2023-06-30 19:29:28 +02:00
Florian Bruhin 50a1f004f0 qt6 mypy: Enable on CI 2023-06-29 23:16:35 +02:00
Florian Bruhin 93c7fdd60c Initial Python 3.7 drop 2023-06-26 14:39:54 +02:00
Florian Bruhin 408e16917e ci: Kill remaining qt6-v2 references 2023-06-24 01:05:25 +02:00
Florian Bruhin 70e8dc63e8 Revert "Revert "ci: Remove Python 3.12 for now""
This reverts commit ded43c57c8.

Still segfaults on exit...
2023-06-09 20:25:49 +02:00
Florian Bruhin ded43c57c8 Revert "ci: Remove Python 3.12 for now"
This reverts commit a5d6e41005.

See #7727
2023-06-09 20:06:56 +02:00
Florian Bruhin a5d6e41005 ci: Remove Python 3.12 for now
See #7727
2023-05-31 13:00:24 +02:00
Florian Bruhin 06c5de554b ci: Decrease time limit again
Was due to https://github.com/pytest-dev/pytest/issues/10896
2023-04-14 21:04:12 +02:00
Florian Bruhin 6e018fe2ab ci: Test a bigger sample of Python versions
- Make sure we still test Python 3.7 and 3.8 after dropping old PyQt
  versions in c5a51eb0bc
- Keep a modern Python version (3.11) with Qt 5 around, however
- Make sure we still test Python 3.10 too
- Also start testing the Python 3.12 alpha
2023-04-11 15:21:40 +02:00
Florian Bruhin 6f5de192e0 ci: Install libxcb-cursor
See https://codereview.qt-project.org/c/qt/qtbase/+/325414
2023-04-11 14:53:17 +02:00
Florian Bruhin 986348acb9 Revert "ci: Disable broken Qt 6.5"
This reverts commit 681f7ffc57.
2023-04-11 14:53:02 +02:00
Florian Bruhin 681f7ffc57 ci: Disable broken Qt 6.5
See #7624
2023-04-11 13:55:06 +02:00
Florian Bruhin 950d55002e ci: Raise time limit even more
Apparently Windows CI is real slow on GitHub currently...
2023-04-10 23:28:22 +02:00
Florian Bruhin 30e70803d0 ci: Add PyQt 6.5
See #7624
2023-04-10 23:25:15 +02:00
Florian Bruhin 39b6a1e946 ci: Properly raise time limits
CodeQL only needs about 7 minutes, but Windows needs >45
2023-04-10 22:20:19 +02:00
Florian Bruhin 764dbfd008
Merge pull request #7660 from qutebrowser/dependabot/github_actions/peter-evans/create-pull-request-5
build(deps): bump peter-evans/create-pull-request from 4 to 5
2023-04-10 21:09:18 +02:00
Florian Bruhin 055224cb8d ci: Bump tests timeout once again
Looks like 45mins is too tight for GHA on Windows with heavy load...
2023-04-10 21:05:53 +02:00
dependabot[bot] 106a71f314
build(deps): bump peter-evans/create-pull-request from 4 to 5
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 19:01:49 +00:00
toofar 2d6d602f29 ci: update cov test run but keep it disabled
Error: qutebrowser/browser/webengine/certificateerror.py has 90.91% line and 50.00% branch coverage!
    Error: qutebrowser/browser/webengine/darkmode.py has 96.88% line and 100.00% branch coverage!
    Error: qutebrowser/keyinput/basekeyparser.py has 97.59% line and 100.00% branch coverage!
    Error: qutebrowser/keyinput/keyutils.py has 92.64% line and 96.30% branch coverage!
    Error: qutebrowser/utils/debug.py has 94.51% line and 92.19% branch coverage!
    Error: qutebrowser/utils/qtutils.py has 98.67% line and 96.74% branch coverage!
    Error: qutebrowser/utils/usertypes.py has 99.20% line and 96.30% branch coverage!
    Error: qutebrowser/utils/version.py has 97.66% line and 97.83% branch coverage!

Maybe we should open an issue to get them back up.
2023-03-18 17:30:26 +13:00
toofar f68798a081 ci: attempt to make the qt6 docker run work
On CI were were getting "Could not import sip" because link_pyqt was
looking for PyQt5.sip.
I made that look at QUTE_QT_WRAPPER since that's being set already on
tox.ini
There are probably a few other changes around link_pyqt and the makefile
etc we need to change when we switch the default wrapper.

I overrode the default `py` tox environment with py-qt6 to override
those wrapper related variables. I probably could have done something
sneaky with curly braces to make it so we don't have to add a few more
lines to the file. But in my opinion in config file is far to obfuscated
and hard to maintain already.

I changed the docker file to call the new py-qt6 env if it's a qt6
container. I'm not 100% sure that is required though since there is also
a tox invocation in the GH action definition, maybe that overrides the
container entrypoint? Also changed the indentation in the dockerfile
template a bit to make it easier to see where the conditionals start and
end.

Speaking of which I changed the matrix definition and tox invocation to
match a later one to hopefully make it so we can invoke different tox
environments in the containers without having to rebuild the containers.
Not sure I did that right, I'll see soon.

I added the unstable-qt6 container generation line so we can use it in
the future, and to match the not-qt6 one. I'm not switching to that in
CI though because the pyqt used by that is broken at the moment
(ref https://www.riverbankcomputing.com/pipermail/pyqt/2023-March/045214.html)

Also fixed the vim modeline in generate.py so my syntax highlighting
works.
2023-03-18 17:29:25 +13:00
toofar 2b67070d16 ci: enable pyqt6.4 and py3.11 test matrix entries
6.4 tests should be passing now. 6.5 is still waiting on PyQt on PyPI
getting fixed. That goes for kde-unstable-qt6 too as that's pulling down
6.5.

We should take the opportunity to revisit the test matrix configuration
again when we add 6.5 in there. For example py3.11 on ubuntu 20.04 is a
bit odd as it only got released last year.
2023-03-18 16:37:02 +13:00
Florian Bruhin 4793070db3 Merge branch 'qt6-v2' into master-qt6 2023-03-17 20:30:13 +01:00
Florian Bruhin 9fdd737966 ci: Fix syntax 2023-03-14 12:10:45 +01:00
Florian Bruhin 72692f1580 ci: Switch branches for qt 6 image
Follow-up to 9d9a7b3b84 hopefully fixing CI on master
2023-03-14 12:08:37 +01:00
toofar 9d9a7b3b84 CI: generate archlinux-webengine-qt6 docker image
I'm not 100% sure we need this. But there is an existing test matrix
that I want to active for now. We can review all the configuration later
I guess?
2023-03-14 11:20:54 +13:00
toofar 09761e2556 CI: generate archlinux-webengine-qt6 docker image
I'm not 100% sure we need this. But there is an existing test matrix
that I want to active for now. We can review all the configuration later
I guess?
2023-03-14 11:07:31 +13:00
dependabot[bot] 370b191615
build(deps): bump docker/build-push-action from 3 to 4
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 18:09:26 +00:00
Florian Bruhin ab258e7aab ci: Bump timeouts to 45m
Looks like 30m is a bit tight when GHA is exceptionally busy
2023-01-19 09:51:51 +01:00
Florian Bruhin f77ccd022b Fix gathering info for nightly builds on Windows
Not quite sure why this worked with 0ff0eaa703 honestly...
2022-12-27 12:40:08 +01:00
Florian Bruhin b4d32e04f4 Merge branch 'master' into qt6-v2 2022-12-13 09:05:32 +01:00