Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1145 commits
Select commit Hold shift + click to select a range
76a81e3
Update test_run script and documentation to represent current format
denisonbarbosa Oct 15, 2025
e86f6fb
Reorganize resource directory structure
denisonbarbosa Oct 22, 2025
05304e6
Fix code navigation
adombeck Oct 22, 2025
a0a85ad
Fix run_tests.sh exiting with 0 even if tests failed
adombeck Oct 23, 2025
1a5da69
Fix name of the browser_login.py script in broker.resource
adombeck Oct 23, 2025
8635c3e
Use "StringUtils.First Match" instead of "StringUtils.FirstMatch"
adombeck Oct 23, 2025
92a84aa
Fix import path in browser_login.py
adombeck Oct 23, 2025
8c800e6
Use "./" instead of "${CURDIR}/" in robot framework import paths
adombeck Oct 23, 2025
11c3cf0
Consistently use "[Arguments]" instead of "[arguments]"
adombeck Oct 23, 2025
18eaea3
Print output of browser_login.py on failure
adombeck Oct 23, 2025
5e57089
e2e-runner: Use automatically assigned VNC port
adombeck Oct 23, 2025
b4579e4
run_tests.sh: Support specifying more than one test to run
adombeck Oct 23, 2025
96d06d9
run_tests.sh: Support passing arguments to yarf
adombeck Oct 23, 2025
e261d2e
run_tests.sh: Create temporary run dir below e2e-tests/.runs/
adombeck Oct 23, 2025
5f9dc57
e2e-tests: Provide script for provisioning the VM
adombeck Oct 23, 2025
f4ab057
run_tests: Set -o pipefail
adombeck Oct 23, 2025
52b39d7
e2e-tests: Add setup_yarf.sh
adombeck Oct 23, 2025
2644e3c
refactor: Rename RUN_ONSCREEN -> SHOW_WEBVIEW
adombeck Oct 23, 2025
402c6f5
run_tests.sh: Add command-line arguments and a usage message
adombeck Oct 23, 2025
371e50f
Improve naming consistency
denisonbarbosa Oct 23, 2025
3a9820e
Rename scripts to use - instead of _
denisonbarbosa Oct 23, 2025
043de3b
Update documentation to consider latest changes
denisonbarbosa Oct 23, 2025
0ef20c5
ci: Add "Shell: Code sanity" job
adombeck Oct 23, 2025
d6763fa
run-tests.sh: Fix "test_result: unbound variable"
adombeck Oct 23, 2025
a006c5a
e2e-tests: Log video of webview on error
adombeck Oct 24, 2025
adb401e
e2e-tests: Make browser_login.py more robust
adombeck Oct 24, 2025
fb47ce6
Fix shellcheck warning
adombeck Oct 24, 2025
9f69779
Update system time when first logging in the VM
denisonbarbosa Oct 24, 2025
c99a7c7
e2e-tests/browser-login: Use argparse to parse input arguments
3v1n0 Oct 24, 2025
1b5a146
e2e-tests/browser-login: Use C locale by default
3v1n0 Oct 24, 2025
93279af
e2e-tests/browser-login: Automatically compute the snapshot index
3v1n0 Oct 24, 2025
0d67560
e2e-tests/browser_window: Clarify the usage of the overlay
3v1n0 Oct 24, 2025
0478ecd
e2e-tests/browser_window: Use stronger JS code to check for text
3v1n0 Oct 24, 2025
f6bb0bf
e2e-tests/brower_window: Use multi-line imports from gi
3v1n0 Oct 24, 2025
8222160
e2e-tests: Grab default only after the widget is part of a window
3v1n0 Oct 24, 2025
bf8d9a1
e2e-tests/browser_window: Improve the JS injection code
3v1n0 Oct 24, 2025
dc74d10
e2e-tests: Clarify that we are not looking for *visible* text yet
3v1n0 Oct 24, 2025
329ba76
e2e-tests/browser_window: Remove unused code
3v1n0 Oct 24, 2025
9ac951d
e2e-tests: Move snapshot functionality to browser window
3v1n0 Oct 24, 2025
2180e14
e2e-tests/browser_login: Take a window snapshot on failure
3v1n0 Oct 24, 2025
4588827
e2e-tests/browser_window: Use native Gdk functions to create surface
3v1n0 Oct 24, 2025
11415f9
e2e-tests/browser_window: Save snapshots in threads
3v1n0 Oct 25, 2025
49a55e7
e2e-tests/browser-window: Add utility function to connect to draw events
3v1n0 Oct 25, 2025
9f34d56
e2e-tests/browser-window: Support full video recording
3v1n0 Oct 25, 2025
31b4975
e2e-tests/browser-login: Run again offscreen by default
3v1n0 Oct 25, 2025
7dacdf0
e2e-tests/browser-login: Destroy browser on cleanup
3v1n0 Oct 25, 2025
929356e
Add utility to generate code for MFA steps
denisonbarbosa Oct 29, 2025
c38ffd2
e2e-tests/browser_login: Wait for visible text after page is stable
3v1n0 Oct 29, 2025
e55e36b
e2e-tests: Avoid encoded video being printed to stdout
adombeck Oct 27, 2025
5d0f61c
e2e-tests: Sync system time after restoring screenshot
adombeck Oct 27, 2025
382a2c0
e2e-tests/vm: Configure system to use larger text
adombeck Oct 27, 2025
abf98fc
e2e-tests: Bump timeout
adombeck Oct 28, 2025
0be564b
e2e-tests: Fix provision.sh failing if domain is running
adombeck Oct 28, 2025
f760cc9
e2e-tests: Fix "Environment variable '%{username}' not found"
adombeck Oct 29, 2025
bec8bf8
e2e-tests: Fix block_login_with_different_username.robot
adombeck Oct 29, 2025
6eb430f
e2e-tests: Add a symlink which always points to latest test results
adombeck Oct 29, 2025
98d8f7c
e2e-tests: Fix remote group
adombeck Oct 29, 2025
fa9fb00
e2e-tests: Move offscreen functionality to Browser.py
adombeck Oct 29, 2025
28d436f
e2e-tests: Set user agent in webview
adombeck Oct 29, 2025
ff1f8ec
e2e-tests: Restore snapshot in Suite Setup
adombeck Oct 29, 2025
bf1660a
e2e-tests: Fix "Run Command In Terminal" when root terminal is open
adombeck Oct 29, 2025
a629151
e2e-tests: Run all tests with a single yarf invocation
adombeck Oct 29, 2025
46a81ed
e2e-tests: Fix spelling of test case
adombeck Oct 29, 2025
d0a582b
e2e-tests: Fix keywords changing config file
adombeck Oct 29, 2025
aff4fb3
e2e-tests: Fix "Check that owner was updated in broker configuration"
adombeck Oct 29, 2025
97ecf23
e2e-tests: Add debug output to StringUtils.first_match
adombeck Oct 29, 2025
cca9273
e2e-tests/browser_login: Wait for visible text before page is stable
adombeck Oct 29, 2025
6147572
e2e-tests: Bump timeout waiting for Entra sign in
adombeck Oct 28, 2025
99ccde0
e2e-tests: Make waiting for desktop to be ready more robust
adombeck Oct 30, 2025
57d366b
e2e-tests: Set OCR confidence threshold
adombeck Oct 29, 2025
b5a0baa
e2e-tests/run-tests.sh: Print executed commands
adombeck Oct 30, 2025
d83a440
e2e-tests: Fix migration_authd.robot
adombeck Oct 30, 2025
1f337a9
e2e-tests: Make "Run Command In Focused Terminal" more robust
adombeck Oct 30, 2025
43df20e
e2e-tests: Fix "Check Home Directory"
adombeck Oct 30, 2025
ab742dc
snap: Appease shellcheck
adombeck Oct 30, 2025
52dfa4d
e2e-tests: Bump timeout waiting for apt upgrade
adombeck Oct 30, 2025
86837c5
e2e-tests: Close open terminal before trying to open a new one
adombeck Oct 30, 2025
fe384e4
e2e-tests: Enable debug logs for authd and the broker
adombeck Oct 30, 2025
f3d3afc
e2e-tests/vm: Avoid installing unnecessary packages
adombeck Oct 31, 2025
cae72e9
e2e-tests: Download image to $XDG_CACHE_HOME
adombeck Oct 31, 2025
11d40b3
e2e-tests/vm: Detach cloud-init ISO after setup
adombeck Oct 31, 2025
2db3edc
e2e-tests/vm: Avoid provisioning failing if system status is "degraded"
adombeck Oct 31, 2025
c5e4d19
e2e-tests: Don't print stdout of the browser_login.py command
adombeck Nov 3, 2025
39bb4cf
e2e-tests: Make sure the user code is uppercase
adombeck Nov 3, 2025
1391784
e2e-tests: Handle MFA when prompted for it
adombeck Nov 3, 2025
317c9bc
e2e-tests: Print stderr of subprocess commands on error
adombeck Nov 3, 2025
40cdd2f
e2e-tests: Use a timeout for SSH commands
adombeck Nov 3, 2025
2c4997a
e2e-tests: Fix change password test
adombeck Nov 3, 2025
60d6e9e
e2e-tests: Avoid typing unused string
adombeck Nov 3, 2025
f8b6ffd
e2e-tests: Fix SSH login test
adombeck Nov 3, 2025
c63467e
e2e-tests/vm: Don't use authd config file to configure verbosity
adombeck Nov 3, 2025
7b384a5
e2e-tests/vm: Use external snapshots
adombeck Nov 3, 2025
bbdc624
e2e-tests: Remove unnecessary sleep
adombeck Nov 4, 2025
0b0a902
e2e-tests: Replace sleep with Match Text
adombeck Nov 4, 2025
11260a1
e2e-tests: Fix ssh_deny_login_if_prefix_not_allowed.robot
adombeck Nov 4, 2025
0268180
e2e-tests: Fix capitalization of Move Pointer To keyword parameter
adombeck Nov 4, 2025
f600668
Use my fork of YARF
adombeck Nov 13, 2025
8990f69
Add E2E tests for the msentraid broker (#659)
adombeck Nov 13, 2025
72b0302
Fix invalid auth reply
adombeck Nov 14, 2025
2bef412
Fix invalid auth reply (#748)
adombeck Nov 14, 2025
4da6852
e2e-tests: Call robot directly instead of yarf
adombeck Oct 29, 2025
6ca713b
e2e-tests/run-tests.sh: Support --rerunfailed
adombeck Oct 29, 2025
cb0e544
e2e-tests: Rename test file
adombeck Nov 5, 2025
7675b87
e2e-tests: Add missing docstring
adombeck Nov 10, 2025
c6393b3
e2e-tests/vm/provision.sh: Attach cloud-init ISO as a disk instead of…
adombeck Nov 10, 2025
7d645be
e2e-tests/run-tests.sh: Fix permission denied with external snapshots
adombeck Nov 10, 2025
9554fff
e2e-tests: Support specifying the Ubuntu release
adombeck Nov 10, 2025
6ab7f1a
e2e-tests/vm/provision.sh: Add --force option
adombeck Nov 10, 2025
2880d5e
e2e-tests/vm: Put artifacts in subdirectory named after the release
adombeck Nov 10, 2025
37c19f3
e2e-tests/vm: Remove osinfo from libvirt domain template
adombeck Nov 10, 2025
3419e1e
e2e-tests/vm: Avoid repetition in artifact filenames
adombeck Nov 10, 2025
6816138
e2e-tests/vm/ssh.sh: Support connecting to noble
adombeck Nov 10, 2025
35a803a
e2e-tests: Repeatedly try syncing time after snapshot restore
adombeck Nov 11, 2025
7b4ec7e
e2e-tests/vm/provision.sh: Make memfile variable local
adombeck Nov 11, 2025
5c8a039
e2e-tests/vm/provision.sh: Sync system time after restoring snapshot
adombeck Nov 11, 2025
d30d777
e2e-tests: Make test cases not rely on other test cases
adombeck Nov 12, 2025
02b802d
e2e-tests: Make waiting for QR code more robust
adombeck Nov 12, 2025
e5f5f5b
e2e-tests: Log chronyc output
adombeck Nov 12, 2025
c6841a9
e2e-tests: Retry loading device login page on TLS error
adombeck Nov 12, 2025
e7b17bd
e2e-tests: Wait for internet connection before time sync
adombeck Nov 12, 2025
9fe560a
e2e-tests: Use systemd-timesyncd instead of chrony
adombeck Nov 12, 2025
1b8ec21
e2e-tests/vm/provision.sh: Make command executed via ssh more robust
adombeck Nov 12, 2025
caa9372
e2e-tests/vm: Make noble bind sshd to VSOCK
adombeck Nov 13, 2025
7946bf8
e2e-tests: Remove "Run Command In Focused Terminal"
adombeck Nov 13, 2025
3d7a69c
e2e-tests: Execute more commands via SSH
adombeck Nov 13, 2025
ffcdccb
e2e-tests: Log the output of SSH commands
adombeck Nov 13, 2025
1fc7b51
e2e-tests: Rename keyword
adombeck Nov 13, 2025
da0409b
e2e-tests/vm: Remove default values from cloud-init templates
adombeck Nov 13, 2025
20f2023
e2e-tests: Handle user code being read with lowercase characters
adombeck Nov 13, 2025
6ba3aaf
e2e-tests: Add the VM's journal to the HTML log
adombeck Nov 14, 2025
50d0966
e2e-tests/vm/ssh.sh: Force pseudo-terminal allocation
adombeck Nov 14, 2025
2f78ded
deps(go-tools): bump the minor-updates group across 1 directory with …
dependabot[bot] Nov 17, 2025
dec57a1
deps(go): bump the minor-updates group with 3 updates (#744)
adombeck Nov 17, 2025
06a8227
deps(go-tools): bump the minor-updates group across 1 directory with …
adombeck Nov 17, 2025
3e5414a
Improvements to e2e tests (#752)
adombeck Nov 18, 2025
4ebf740
deps(go): bump the minor-updates group with 4 updates
dependabot[bot] Nov 24, 2025
0742832
deps(ci): bump actions/checkout from 5 to 6
dependabot[bot] Nov 24, 2025
d84a079
deps(go): bump the minor-updates group with 4 updates (#759)
adombeck Nov 24, 2025
85834c3
Revert "e2e-tests/vm/ssh.sh: Force pseudo-terminal allocation"
adombeck Dec 1, 2025
2fe3c8a
e2e-tests/vm/provision.sh: Fix broker config path
adombeck Dec 1, 2025
df2b216
e2e-tests/vm/provision.sh: Support setting client secret
adombeck Dec 1, 2025
3f03e49
e2e-tests: Make selecting the user in GDM more robust
adombeck Dec 1, 2025
b747c3c
e2e-tests: Disable automatic apt downloads and upgrades
adombeck Dec 1, 2025
405f21b
e2e-tests/vm/provision.sh: Make the time sync more robust
adombeck Dec 1, 2025
1279a15
e2e-tests/vm/provision.sh: Make rebooting more robust
adombeck Dec 1, 2025
2accc84
e2e-tests/vm: Restart journal-vsock-export.service on error
adombeck Dec 1, 2025
090680f
fix link for code quality badge
edibotopic Dec 5, 2025
80bfc1e
fix badge image for Go package ref
edibotopic Dec 5, 2025
99310aa
don't capitalise authd
edibotopic Dec 5, 2025
f738aae
update documentation references
edibotopic Dec 5, 2025
741aa88
docs: fix readme (#765)
edibotopic Dec 5, 2025
2e5da44
deps(go-tools): bump github.com/golangci/golangci-lint/v2
dependabot[bot] Dec 8, 2025
3c53516
deps(go): bump the minor-updates group with 2 updates
dependabot[bot] Dec 8, 2025
4dc1098
deps(submodule): bump third_party/libhimmelblau
dependabot[bot] Dec 8, 2025
d1789d5
Bump Go toolchain version to 1.24.11
adombeck Dec 8, 2025
cb1bc11
deps(submodule): bump third_party/libhimmelblau from `24fe211` to `97…
adombeck Dec 8, 2025
3d6042f
deps(go): bump the minor-updates group with 2 updates (#769)
adombeck Dec 8, 2025
6c45326
deps(go-tools): bump github.com/golangci/golangci-lint/v2 from 2.6.2 …
adombeck Dec 8, 2025
84d53b1
Bump Go toolchain version to 1.24.11 (#775)
adombeck Dec 8, 2025
eb8585d
e2e-tests: Preparation for vanilla broker tests (#763)
adombeck Dec 9, 2025
50c41d5
e2e-tests: Export journal via VSOCK on questing
adombeck Dec 9, 2025
7b6a7e1
e2e-tests: Export journal via VSOCK on questing (#781)
adombeck Dec 9, 2025
1b07c5d
Revert "e2e-tests/vm/provision.sh: Support setting client secret"
adombeck Dec 9, 2025
0e771b2
readme: Make it clear that issues should be reported in the authd repo
adombeck Dec 11, 2025
e8f4181
Update provisioning script to support multiple brokers
denisonbarbosa Nov 13, 2025
e734da1
Configure ssh allowed user during test setups
denisonbarbosa Dec 2, 2025
e339b92
Add resources for testing authd-google
denisonbarbosa Dec 2, 2025
832074d
Remove whitespaces from matched strings on StringUtils
denisonbarbosa Dec 2, 2025
e6de51e
Move group-related checks to authd-msentraid specific resource
denisonbarbosa Dec 2, 2025
76b7a0a
Use { ..; } instead of (..) to avoid subshell overhead
adombeck Dec 11, 2025
4af9f44
e2e-tests/vm: Extract duplicate functions into a shell library
adombeck Dec 11, 2025
256549c
Use one argument per line
adombeck Dec 11, 2025
ca62086
e2e-tests/vm: Remove unused dependency
adombeck Dec 11, 2025
2722c81
e2e-tests/vm: Reduce list of package dependencies
adombeck Dec 11, 2025
84d6063
e2e-tests/vm: Don't require xvfb for provisioning
adombeck Dec 11, 2025
bc100dd
e2e-tests/vm: Sort list of package dependencies alphabetically
adombeck Dec 11, 2025
47570e6
e2e-tests: Remove clang from list of dependencies
adombeck Dec 11, 2025
28efa04
e2e-tests: Extract installation of deps into scripts
adombeck Dec 11, 2025
bf1342f
e2e-tests/vm: Use a config file
adombeck Dec 11, 2025
1c14b90
e2e-tests/vm: Create initial-setup step in provision-ubuntu.sh
adombeck Dec 11, 2025
a9a418a
e2e-tests/vm: Use a different name for the pre-authd setup snapshot
adombeck Dec 11, 2025
fa1a745
e2e-tests/vm: Merge provision-authd.sh and provision-broker.sh
adombeck Dec 11, 2025
a4372c8
e2e-tests/vm: Support config via environment
adombeck Dec 11, 2025
5a5d30d
Make shellcheck look for source files in the current script dir
adombeck Dec 12, 2025
0a3777d
Set up E2E tests for authd-google (#764)
adombeck Dec 12, 2025
f5fc2a5
e2e-tests: Don't require ISSUER_ID to be set
adombeck Dec 12, 2025
c9c8088
e2e-tests/vm: Cache sudo password early
adombeck Dec 12, 2025
3291a35
e2e-tests: Don't require ISSUER_ID to be set (#788)
adombeck Dec 12, 2025
3e820b7
deps(ci): bump actions/download-artifact from 6 to 7
dependabot[bot] Dec 15, 2025
e92fa7d
deps(ci): bump peter-evans/create-pull-request from 7 to 8
dependabot[bot] Dec 15, 2025
75aff49
deps(ci): bump actions/upload-artifact from 5 to 6
dependabot[bot] Dec 15, 2025
f5015f4
deps(go-tools): bump golang.org/x/mod
dependabot[bot] Dec 15, 2025
a0c60dc
deps(go): bump the minor-updates group with 2 updates
dependabot[bot] Dec 15, 2025
6ffc608
deps(go): bump the minor-updates group with 2 updates (#795)
adombeck Dec 15, 2025
eed538c
deps(go-tools): bump golang.org/x/mod from 0.30.0 to 0.31.0 in /tools…
adombeck Dec 15, 2025
74487e1
deps(ci): bump actions/upload-artifact from 5 to 6 (#793)
adombeck Dec 15, 2025
35fa47c
deps(ci): bump peter-evans/create-pull-request from 7 to 8 (#792)
adombeck Dec 15, 2025
6e6f2c8
deps(ci): bump actions/checkout from 5 to 6 (#760)
adombeck Dec 15, 2025
bdc4548
deps(ci): bump actions/download-artifact from 6 to 7 (#791)
adombeck Dec 15, 2025
2a501a6
Silence linter warning about name of the errors package
adombeck Dec 15, 2025
77b3fb0
e2e-tests: Also avoid apt downloads on Noble
adombeck Dec 16, 2025
1a6e42e
e2e-tests: Fix Unknown key name 'RestartSec' in section 'Unit'
adombeck Dec 17, 2025
04e89b7
e2e-tests: Use vsock port 55000 for exporting the journal
adombeck Dec 18, 2025
2696923
readme: Make it clear that issues should be reported in the authd rep…
adombeck Jan 5, 2026
b85c3ba
Silence linter warning about name of the errors package (#803)
adombeck Jan 5, 2026
0b1e778
e2e-tests: Fix issues with robot-framework 7.4.0
adombeck Dec 15, 2025
1fe3fd8
e2e-tests: Use `console=False` to avoid printing video to console
adombeck Dec 15, 2025
df075da
Add rust-toolchain.toml
adombeck Jan 5, 2026
ec3fad4
ci: Make dependabot update rust-toolchain.toml
adombeck Jan 5, 2026
e888dd0
e2e-tests: Also avoid apt downloads on Noble (#806)
adombeck Jan 5, 2026
0a5f867
e2e-tests: Compatibility with robot framework 7.4.0 (#804)
adombeck Jan 5, 2026
a206e5a
Pin rust toolchain (#812)
adombeck Jan 5, 2026
6983537
deps(go): bump the minor-updates group with 2 updates
dependabot[bot] Jan 5, 2026
6d087fd
deps(go): bump the minor-updates group with 2 updates (#807)
adombeck Jan 5, 2026
0e2a093
include token expired message for error AADSTS70043
slapcat Jan 6, 2026
ad146fe
include token expired message for error AADSTS70043 (#821)
adombeck Jan 6, 2026
ee422fa
Remove issue template
adombeck Jan 12, 2026
2570b5b
Remove issue template (#830)
adombeck Jan 12, 2026
4414860
snap: Update snapcraft.yaml for generic OIDC broker
adombeck Jan 12, 2026
96a254d
snap: Update `snapcraft.yaml` for generic OIDC broker (#834)
adombeck Jan 13, 2026
ed7f464
Remove additional scope from generic OIDC provider
adombeck Jan 12, 2026
39280b6
Remove additional scope from generic OIDC provider (#836)
adombeck Jan 13, 2026
6a3dc20
deps(go-tools): bump the minor-updates group in /tools with 2 updates
dependabot[bot] Jan 14, 2026
c1b92c0
deps(go): bump the minor-updates group across 1 directory with 4 updates
dependabot[bot] Jan 14, 2026
9f3945c
deps(go): bump the minor-updates group across 1 directory with 4 upda…
adombeck Jan 14, 2026
7e669ec
deps(go-tools): bump the minor-updates group in /tools with 2 updates…
adombeck Jan 14, 2026
5ab618a
deps(submodule): bump third_party/libhimmelblau
dependabot[bot] Jan 14, 2026
c2e3a9d
deps(submodule): bump third_party/libhimmelblau from `974469c` to `08…
adombeck Jan 14, 2026
93c7b77
Better error message when failing to connect to provider
adombeck Jan 15, 2026
c9da953
Better error message when failing to connect to provider (#844)
adombeck Jan 19, 2026
99c4463
snap: Use sentence case in list of features in snap description
adombeck Jan 19, 2026
0b3b363
snap: Use sentence case in list of features in snap description (#847)
adombeck Jan 19, 2026
700a66f
Move all files into a subdirectory "authd-oidc-brokers"
adombeck Jan 23, 2026
fd6625e
Merge remote-tracking branch 'authd-oidc-brokers/move-to-subdir' into…
adombeck Jan 23, 2026
2e60734
Merge GitHub workflows from authd-oidc-brokers repo
adombeck Jan 19, 2026
a257166
Remove LICENSE, README.md and SECURITY.md from authd-oidc-brokers
adombeck Jan 20, 2026
9e006c0
pam/generate.sh: Ignore SC2046
adombeck Jan 21, 2026
04b9433
Fix path to libhimmelblau submodule
adombeck Jan 21, 2026
f35bfaf
Cargo.toml: Exclude libhimmelblau submodule
adombeck Jan 21, 2026
de53a1e
gotestcov: Fix issues reported by shellcheck
adombeck Jan 21, 2026
aa6c851
ci/brokers-qa: Use my fork of gocov
adombeck Jan 21, 2026
e3d0f15
Move authd-oidc-brokers/snap/ to snap/
adombeck Jan 21, 2026
97bb85c
snap: Avoid build failure
adombeck Jan 21, 2026
1947264
debian/lrc.config: Exclude snapcraft.yaml from license check
adombeck Jan 21, 2026
255af97
debian/rules: Exclude the authd-oidc-brokers directory
adombeck Jan 21, 2026
59df34e
Rename authd-oidc-brokers Go module
adombeck Jan 21, 2026
40499e5
snap: Update links
adombeck Jan 21, 2026
a5a0cb1
Rename github.com/ubuntu/authd to github.com/canonical/authd
adombeck Jan 21, 2026
813821f
ci: Prefix "QA & sanity checks" workflow with "authd"
adombeck Jan 22, 2026
00ffc77
ci: Configure dependabot for authd-oidc-brokers
adombeck Jan 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 38 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ updates:
commit-message:
prefix: "deps(ci)"

# Codebase
# authd codebase
## Go dependencies
- package-ecosystem: "gomod"
directory: "/" # Location of package manifests
Expand Down Expand Up @@ -61,3 +61,40 @@ updates:
update-types: ["minor", "patch"]
commit-message:
prefix: "deps(rust)"

## git submodules
- package-ecosystem: "gitsubmodule"
directory: "/" # Directory containing .gitmodules
schedule:
interval: "weekly"
commit-message:
prefix: "deps(submodule)"

# authd-oidc-brokers codebase
## Go dependencies
- package-ecosystem: "gomod"
directory: "/authd-oidc-brokers" # Location of package manifests
schedule:
interval: "weekly"
groups:
minor-updates:
update-types: [ "minor", "patch" ]
commit-message:
prefix: "deps(go)"

- package-ecosystem: "gomod"
directory: "/authd-oidc-brokers/tools"
schedule:
interval: "weekly"
groups:
minor-updates:
update-types: [ "minor", "patch" ]
commit-message:
prefix: "deps(go-tools)"
## rust-toolchain.toml
- package-ecosystem: "cargo"
directory: "/authd-oidc-brokers"
schedule:
interval: "weekly"
commit-message:
prefix: "deps(rust)"
196 changes: 196 additions & 0 deletions .github/workflows/brokers-qa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
name: Brokers QA & sanity checks
on:
push:
branches:
- main
tags:
- "*"
paths:
- "authd-oidc-brokers/**"

pull_request:
paths:
- "authd-oidc-brokers/**"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

defaults:
run:
working-directory: ./authd-oidc-brokers

jobs:
go-sanity:
name: "Go: Code sanity"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive

- name: Build libhimmelblau
# The code sanity check fails if himmelblau.h does not exist, so we generate it first.
run: go generate --tags withmsentraid ./internal/providers/msentraid/...

- name: Go code sanity check
uses: canonical/desktop-engineering/gh-actions/go/code-sanity@v2
with:
golangci-lint-configfile: ".golangci.yaml"
working-directory: "./authd-oidc-brokers"
tools-directory: "./authd-oidc-brokers/tools"
go-tags: "withmsentraid"

shell-sanity:
name: "Shell: Code sanity"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master

go-tests:
name: "Go: Tests"
runs-on: ubuntu-24.04 # ubuntu-latest-runner
strategy:
fail-fast: false
matrix:
test: [ "coverage", "asan" ]
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: actions/setup-go@v6
with:
go-version-file: go.mod

- uses: canonical/desktop-engineering/gh-actions/common/dpkg-install-speedup@main
- name: Install dependencies
run: |
set -eu
sudo apt-get update
sudo apt-get install -y git-delta

- name: Install coverage collection dependencies
if: matrix.test == 'coverage'
run: |
set -eu

go install github.com/AlekSi/gocov-xml@latest
go install github.com/adombeck/gocov/gocov@latest
dotnet tool install -g dotnet-reportgenerator-globaltool

- name: Build libhimmelblau
run: go generate --tags withmsentraid ./internal/providers/msentraid/...

- name: Prepare tests artifacts path
run: |
set -eu

artifacts_dir=$(mktemp -d --tmpdir authd-test-artifacts-XXXXXX)
echo AUTHD_TEST_ARTIFACTS_DIR="${artifacts_dir}" >> $GITHUB_ENV

- name: Install gotestfmt and our wrapper script
uses: canonical/desktop-engineering/gh-actions/go/gotestfmt@main

- name: Run tests (with coverage collection)
if: matrix.test == 'coverage'
run: |
set -euo pipefail

# The coverage is not written if the output directory does not exist, so we need to create it.
cov_dir=${PWD}/coverage
raw_cov_dir=${cov_dir}/raw_files
codecov_dir=${cov_dir}/codecov

mkdir -p "${raw_cov_dir}" "${codecov_dir}"

# Print executed commands to ease debugging
set -x

# Overriding the default coverage directory is not an exported flag of go test (yet), so
# we need to override it using the test.gocoverdir flag instead.
#TODO: Update when https://go-review.googlesource.com/c/go/+/456595 is merged.
go test -tags withmsentraid -json -cover -covermode=set ./... -shuffle=on -args -test.gocoverdir="${raw_cov_dir}" 2>&1 | \
gotestfmt --logfile "${AUTHD_TEST_ARTIFACTS_DIR}/gotestfmt.cover.log"

# Convert the raw coverage data into textfmt so we can merge the Rust one into it
go tool covdata textfmt -i="${raw_cov_dir}" -o="${cov_dir}/coverage.out"

# Filter out the testutils package
grep -v -e "testutils" "${cov_dir}/coverage.out" >"${cov_dir}/coverage.out.filtered"

# Generate the Cobertura report for Go
gocov convert "${cov_dir}/coverage.out.filtered" | gocov-xml > "${cov_dir}/coverage.xml"
reportgenerator -reports:"${cov_dir}/coverage.xml" -targetdir:"${codecov_dir}" -reporttypes:Cobertura

# Store the coverage directory for the next steps
echo COVERAGE_DIR="${codecov_dir}" >> ${GITHUB_ENV}

- name: Run msentraid tests (with Address Sanitizer)
if: matrix.test == 'asan'
env:
# Do not optimize, keep debug symbols and frame pointer for better
# stack trace information in case of ASAN errors.
CGO_CFLAGS: "-O0 -g3 -fno-omit-frame-pointer"
GO_TESTS_TIMEOUT: 30m
# Use these flags to give ASAN a better time to unwind the stack trace
GO_GC_FLAGS: -N -l
run: |
# Print executed commands to ease debugging
set -x

# For llvm-symbolizer
sudo apt-get install -y llvm

# We only run the msentraid tests with ASAN because only these use cgo.
pushd ./internal/providers/msentraid
go test -asan -gcflags=all="${GO_GC_FLAGS}" -c
go tool test2json -p internal/providers/msentraid ./msentraid.test \
-test.v=test2json \
-test.failfast \
-test.timeout ${GO_TESTS_TIMEOUT} | \
gotestfmt --logfile "${AUTHD_TEST_ARTIFACTS_DIR}/gotestfmt.asan.log" || \
exit_code=$?
popd

# We don't need the xtrace output after this point
set +x

# We're logging to a file, and this is useful for having artifacts, but we still may want to see it in logs:
for f in "${AUTHD_TEST_ARTIFACTS_DIR}"/*asan.log*; do
if ! [ -e "${f}" ]; then
continue
fi
if [ -s "${f}" ]; then
echo "::group::${f} ($(wc -l < "${f}") lines)"
cat "${f}"
echo "::endgroup::"
else
echo "${f}: empty"
fi
done

exit ${exit_code}

- name: Upload coverage to Codecov
if: matrix.test == 'coverage'
uses: codecov/codecov-action@v5
with:
directory: ${{ env.COVERAGE_DIR }}
files: ${{ env.COVERAGE_DIR }}/Cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload coverage report as artifact
if: matrix.test == 'coverage' && github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v6
with:
name: coverage
path: ${{ env.COVERAGE_DIR }}

- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v6
with:
name: authd-${{ github.job }}-artifacts-${{ github.run_attempt }}
path: ${{ env.AUTHD_TEST_ARTIFACTS_DIR }}
4 changes: 3 additions & 1 deletion .github/workflows/qa.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
name: QA & sanity checks
name: authd QA & sanity checks
on:
push:
branches:
- main
paths-ignore:
- '.github/workflows/automatic-doc-checks.yml'
- '.readthedocs.yaml'
- "authd-oidc-brokers/**"
- 'docs/**'
tags:
- "*"
pull_request:
paths-ignore:
- '.github/workflows/automatic-doc-checks.yml'
- '.readthedocs.yaml'
- "authd-oidc-brokers/**"
- 'docs/**'

concurrency:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tics-run.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,8 @@ jobs:
find pam -name '*.so' -print -delete
go generate -C pam -x
go build ./cmd/authd
go -C ./authd-oidc-brokers build -o authd-vanilla ./cmd/authd-oidc
go -C ./authd-oidc-brokers build -tags=withmsentraid -o authd-msentraid ./cmd/authd-oidc
go -C ./authd-oidc-brokers build -tags=withgoogle -o authd-google ./cmd/authd-oidc

TICSQServer -project authd -tmpdir /tmp/tics -branchdir .
119 changes: 119 additions & 0 deletions .github/workflows/update-broker-variant-branches.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Auto update broker variant branches
on:
push:
branches:
- main
paths:
- "authd-oidc-brokers/**"
workflow_dispatch:
concurrency: auto-update-broker-variants

permissions:
pull-requests: write
contents: write

defaults:
run:
working-directory: ./authd-oidc-brokers

env:
DEBIAN_FRONTEND: noninteractive

jobs:
update-snap-branches:
name: Update snap branches
strategy:
matrix:
branch_name: ["google","msentraid"]
runs-on: ubuntu-latest
steps:
- uses: canonical/desktop-engineering/gh-actions/common/dpkg-install-speedup@main
- name: Install dependencies
run: |
set -eu
sudo apt-get update
sudo apt-get install -y git
- uses: actions/checkout@v6
with:
ref: main
fetch-depth: 0
- name: Merge main into branches
id: merge
run: |
set -eux
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git fetch
git checkout ${{ matrix.branch_name }}

# First, assume that we will have conflicts due to the merge command
# failing the action if there's any.
echo "has_conflicts=true" >> $GITHUB_OUTPUT
has_conflicts=true
if git merge main --commit; then
has_conflicts=false
fi

echo "has_conflicts=${has_conflicts}" >> $GITHUB_OUTPUT

- uses: actions/setup-go@v6
if: ${{ steps.merge.outputs.has_conflicts == 'false' }}
with:
go-version-file: go.mod
- name: Regenerate consts for this broker
if: ${{ steps.merge.outputs.has_conflicts == 'false' }}
run: |
set -eux
# Regenerate the consts for the broker
go generate ./internal/consts/
- name: Find generated changes
if: ${{ steps.merge.outputs.has_conflicts == 'false' }}
id: check-diff
uses: canonical/desktop-engineering/gh-actions/common/has-diff@main
with:
working-directory: ./authd-oidc-brokers/internal/consts/
fail-on-diff: false
- name: Commit generated changes
if: ${{ steps.merge.outputs.has_conflicts == 'false' && steps.check-diff.outputs.diff == 'true' }}
run: |
set -eux
git add ./internal/consts/
git commit -m "Regenerate consts for ${{ matrix.branch_name }}"
- name: Create Pull Request
if: ${{ steps.merge.outputs.has_conflicts == 'false' }}
uses: peter-evans/create-pull-request@v8
with:
commit-message: Auto update ${{ matrix.branch_name }} branch
title: Auto update ${{ matrix.branch_name }} branch
body: |
Automated merge from main of ${{ matrix.branch_name }}.
branch: update-${{ matrix.branch_name }}
delete-branch: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Push branch
if: ${{ steps.merge.outputs.has_conflicts == 'false' }}
run: |
set -eux
git push origin update-${{ matrix.branch_name }}:${{ matrix.branch_name }}

- name: Restore and prepare branch
if: ${{ steps.merge.outputs.has_conflicts == 'true' }}
run: |
set -eux
# Reset the state of the current destination
git merge --abort
# Apply the changes we want to merge (which is the content of main)
git reset --hard main
- name: Create Pull Request
if: ${{ steps.merge.outputs.has_conflicts == 'true' }}
uses: peter-evans/create-pull-request@v8
with:
commit-message: Auto update ${{ matrix.branch_name }} branch
title: Auto update ${{ matrix.branch_name }} branch
body: |
Pull request created due to conflicts found when merging main into ${{ matrix.branch_name }}.

Remember to run go -C authd-oidc-brokers generate ./internal/consts/ and committing those changes before merging this PR.
branch: update-${{ matrix.branch_name }}
delete-branch: true
token: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading