Skip to content

Containerized workflow to run PHPUnit and lockfiles validation#853

Merged
willbrowningme merged 3 commits into
anonaddy:masterfrom
crazy-max:validate-containerized
May 11, 2026
Merged

Containerized workflow to run PHPUnit and lockfiles validation#853
willbrowningme merged 3 commits into
anonaddy:masterfrom
crazy-max:validate-containerized

Conversation

@crazy-max

@crazy-max crazy-max commented May 3, 2026

Copy link
Copy Markdown
Member

This change adds a Buildx Bake based development validation flow for PHPUnit, Composer and npm.

This keeps dependency validation containerized and gives the project a clean place to add future validation targets without spreading toolchain setup across workflow steps.

Can be tested locally with:

docker buildx bake validate --progress=plain

See PHPUnit run on ci: https://github.com/anonaddy/anonaddy/actions/runs/25285308372/job/74128778229?pr=853#step:2:1441

#14 5.566 + php artisan test
#14 6.203 
#14 6.203    PASS  Tests\Unit\AliasTest
#14 6.211   ✓ alias can get verified recipients                                    0.29s  
#14 6.211   ✓ alias can set default recipient email                                0.03s  
#14 6.211   ✓ alias can get default recipient email                                0.03s  
#14 6.211   ✓ alias can get verified recipients or default                         0.03s  
#14 6.255 
#14 6.255    PASS  Tests\Unit\EmailUsersWithTokenExpiringSoonTest
#14 6.255   ✓ it can send a mail concerning a token expiring soon                  0.05s  
#14 6.566 
#14 6.566    PASS  Tests\Unit\UserTest
#14 6.567   ✓ user can get aliases from relationship                               0.03s  
#14 6.567   ✓ user can only get their own aliases from relationship                0.03s  
#14 6.568   ✓ user can get total emails forwarded                                  0.02s  
#14 6.569   ✓ user can get total emails blocked                                    0.02s  
#14 6.569   ✓ user can get total emails replied                                    0.02s  
#14 6.570   ✓ user can get aliases using default recipient                         0.03s  
#14 6.571   ✓ user can get bandwidth in mb                                         0.02s  
#14 6.571   ✓ user can get bandwidth in mb to correct precision                    0.02s  
#14 6.572   ✓ user can get bandwidth limit in mb                                   0.02s  
#14 6.573   ✓ user can check if near bandwidth usage limit                         0.02s  
#14 6.573   ✓ user get domain options                                              0.03s  
#14 6.574   ✓ user can match verified recipient with extension                     0.02s  
#14 6.614 
#14 6.614    PASS  Tests\Feature\Api\AccountDetailsTest
#14 6.615   ✓ user can get account details                                         0.05s  
#14 6.797 
#14 6.797    PASS  Tests\Feature\Api\AliasRecipientsTest
#14 6.798   ✓ user can attach recipient to alias                                   0.03s  
#14 6.799   ✓ user can attach multiple recipients to alias                         0.03s  
#14 6.800   ✓ user can update existing recipients for alias                        0.03s  
#14 6.800   ✓ user cannot attach unverified recipient to alias                     0.03s  
#14 6.801   ✓ user cannot attach more than allowed recipients to alias             0.03s  
#14 6.802   ✓ alias recipient record is deleted if recipient is deleted            0.03s  
#14 7.938 
#14 7.938    PASS  Tests\Feature\Api\AliasesTest
#14 7.939   ✓ user can get all aliases                                             0.04s  
#14 7.940   ✓ user can get all aliases including deleted                           0.03s  
#14 7.940   ✓ user can get only deleted aliases                                    0.03s  
#14 7.941   ✓ user can get only active aliases                                     0.03s  
#14 7.942   ✓ pinned aliases appear first when listing                             0.03s  
#14 7.942   ✓ user can get only pinned aliases                                     0.03s  
#14 7.943   ✓ user can get only unpinned aliases                                   0.03s  
#14 7.944   ✓ user can get individual alias                                        0.03s  
#14 7.944   ✓ user can generate new alias                                          0.03s  
#14 7.945   ✓ user can generate alias with recipients                              0.03s  
#14 7.946   ✓ user can generate new uuid alias                                     0.03s  
#14 7.946   ✓ user can generate new alias with local part                          0.03s  
#14 7.947   ✓ user can generate new alias with local part and extension            0.03s  
#14 7.948   ✓ user cannot generate new alias with invalid local part               0.03s  
#14 7.948   ✓ user cannot generate custom alias that already exists                0.03s  
#14 7.949   ✓ user can generate new random word alias                              0.03s  
#14 7.950   ✓ user can generate new random male name alias                         0.03s  
#14 7.950   ✓ user can generate new random female name alias                       0.03s  
#14 7.951   ✓ user can generate new random noun alias                              0.03s  
#14 7.951   ✓ user can generate new alias with correct aliasable type              0.03s  
#14 7.952   ✓ user can update alias description                                    0.03s  
#14 7.953   ✓ user can update alias from name                                      0.03s  
#14 7.953   ✓ user can delete alias                                                0.03s  
#14 7.954   ✓ user can forget alias                                                0.03s  
#14 7.955   ✓ user can forget shared domain alias                                  0.03s  
#14 7.956   ✓ user can restore deleted alias                                       0.03s  
#14 7.956   ✓ user can activate alias                                              0.03s  
#14 7.957   ✓ user can deactivate alias                                            0.03s  
#14 7.957   ✓ user can pin alias                                                   0.03s  
#14 7.958   ✓ user can unpin alias                                                 0.03s  
#14 7.959   ✓ user can bulk get aliases                                            0.03s  
#14 7.959   ✓ user cannot bulk get invalid aliases                                 0.03s  
#14 7.960   ✓ user can bulk activate aliases                                       0.03s  
#14 7.961   ✓ user cannot bulk activate invalid aliases                            0.03s  
#14 7.961   ✓ user can bulk deactivate aliases                                     0.03s  
#14 7.962   ✓ user can bulk delete aliases                                         0.03s  
#14 7.962   ✓ user can bulk restore aliases                                        0.03s  
#14 7.963   ✓ user can bulk forget aliases                                         0.03s  
#14 7.964   ✓ user can bulk update recipients for aliases                          0.03s  
#14 7.964   ✓ user cannot bulk update recipients for invalid aliases               0.03s  
#14 7.995 
#14 7.995    PASS  Tests\Feature\Api\ApiTokenDetailsTest
#14 7.995   ✓ user can get account details                                         0.05s  
#14 8.496 
#14 8.496    PASS  Tests\Feature\Api\ApiTokensTest
#14 8.497   ✓ user can create api token                                            0.16s  
#14 8.498   ✓ user cannot create api token with incorrect password                 0.16s  
#14 8.498   ✓ user cannot create api token without password when user is internal  0.06s  
#14 8.499   ✓ user can create api token without password when user is extenal      0.06s  
#14 8.500   ✓ user can revoke api token                                            0.06s  
#14 8.530 
#14 8.530    PASS  Tests\Feature\Api\AppVersionTest
#14 8.531   ✓ user can get app version                                             0.03s  
#14 9.113 
#14 9.113    PASS  Tests\Feature\Api\DomainsTest
#14 9.114   ✓ user can get all domains                                             0.04s  
#14 9.115   ✓ user can get individual domain                                       0.03s  
#14 9.115   ✓ user can create new domain                                           0.03s  
#14 9.116   ✓ user can not create the same domain                                  0.03s  
#14 9.117   ✓ new domain must be a valid fqdn                                      0.03s  
#14 9.118   ✓ new domain must not include protocol                                 0.03s  
#14 9.118   ✓ new domain must not be local                                         0.03s  
#14 9.119   ✓ new domain must not be local subdomain                               0.03s  
#14 9.120   ✓ user can activate domain                                             0.03s  
#14 9.120   ✓ user can deactivate domain                                           0.03s  
#14 9.121   ✓ user can enable catch all for domain                                 0.03s  
#14 9.122   ✓ user can disable catch all for domain                                0.03s  
#14 9.122   ✓ user can update domain description                                   0.03s  
#14 9.123   ✓ user can update domain from name                                     0.03s  
#14 9.124   ✓ user can update domain auto create regex                             0.03s  
#14 9.124   ✓ domain auto create regex must be valid                               0.03s  
#14 9.125   ✓ domain auto create regex rejects redos prone patterns                0.03s  
#14 9.125   ✓ user can delete domain                                               0.03s  
#14 9.126   ✓ user can update domain default recipient                             0.03s  
#14 9.127   ✓ user cannot update domain default recipient with unverified recipie… 0.03s  
#14 9.127   ✓ user can remove domain default recipient                             0.03s  
#14 9.297 
#14 9.297    PASS  Tests\Feature\Api\FailedDeliveriesTest
#14 9.297   ✓ user can get all failed deliveries                                   0.04s  
#14 9.298   ✓ user can get individual failed delivery                              0.03s  
#14 9.299   ✓ user can filter failed deliveries by inbound type                    0.03s  
#14 9.299   ✓ user can filter failed deliveries by outbound type                   0.03s  
#14 9.300   ✓ user can paginate failed deliveries                                  0.03s  
#14 9.301   ✓ user can delete failed delivery                                      0.03s  
#14 10.25 
#14 10.25    PASS  Tests\Feature\Api\RecipientsTest
#14 10.25   ✓ user can get all recipients                                          0.03s  
#14 10.25   ✓ user can get individual recipient                                    0.03s  
#14 10.25   ✓ recipients index omits alias count when filter alias count is false  0.03s  
#14 10.25   ✓ recipients index alias count excludes soft deleted aliases           0.03s  
#14 10.25   ✓ recipient show omits alias count when filter alias count is false    0.03s  
#14 10.25   ✓ user can create new recipient                                        0.08s  
#14 10.25   ✓ user can create auto verified recipient                              0.03s  
#14 10.25   ✓ user can not create the same recipient                               0.03s  
#14 10.25   ✓ user can not create the same recipient in uppercase                  0.03s  
#14 10.26   ✓ user can not create the same recipient as default                    0.03s  
#14 10.26   ✓ user can not create recipient with local domain                      0.03s  
#14 10.26   ✓ user can not create recipient with local custom domain               0.03s  
#14 10.26   ✓ new recipient must have valid email                                  0.03s  
#14 10.26   ✓ user can delete recipient                                            0.03s  
#14 10.26   ✓ user can not delete default recipient                                0.03s  
#14 10.26   ✓ user can add gpg key to recipient                                    0.07s  
#14 10.26   ✓ gpg key must be correct format                                       0.03s  
#14 10.26   ✓ gpg key must be valid                                                0.03s  
#14 10.26   ✓ user can remove gpg key from recipient                               0.03s  
#14 10.26   ✓ user can turn on encryption for recipient                            0.03s  
#14 10.26   ✓ user can turn off encryption for recipient                           0.03s  
#14 10.26   ✓ user can allow recipient to send or reply                            0.03s  
#14 10.26   ✓ user can disallow recipient from sending or replying                 0.03s  
#14 10.26   ✓ user can turn on inline encryption                                   0.03s  
#14 10.26   ✓ user can turn off inline encryption                                  0.03s  
#14 10.27   ✓ user can turn on protected headers                                   0.03s  
#14 10.27   ✓ user can turn off protected headers                                  0.03s  
#14 10.27   ✓ user can turn on remove pgp keys                                     0.03s  
#14 10.27   ✓ user can turn off remove pgp keys                                    0.03s  
#14 10.27   ✓ user can turn on remove pgp signatures                               0.03s  
#14 10.27   ✓ user can turn off remove pgp signatures                              0.03s  
#14 10.61 
#14 10.61    PASS  Tests\Feature\Api\RulesTest
#14 10.61   ✓ user can get all rules                                               0.05s  
#14 10.61   ✓ user can get individual rule                                         0.03s  
#14 10.62   ✓ user can create new rule                                             0.03s  
#14 10.62   ✓ user cannot create invalid rule                                      0.03s  
#14 10.62   ✓ user can update rule                                                 0.03s  
#14 10.62   ✓ user can delete rule                                                 0.03s  
#14 10.62   ✓ user can activate rule                                               0.03s  
#14 10.62   ✓ user can deactivate rule                                             0.03s  
#14 10.62   ✓ it can apply user rules                                              0.03s  
#14 10.62   ✓ it does not apply rules if email type is not selected                0.03s  
#14 10.62   ✓ it can apply user rules in correct order                             0.03s  
#14 10.62   ✓ user can reorder rules                                               0.03s  
#14 11.43 
#14 11.43    PASS  Tests\Feature\Api\UsernamesTest
#14 11.43   ✓ user can get all usernames                                           0.04s  
#14 11.43   ✓ user can get individual username                                     0.03s  
#14 11.43   ✓ user can create username                                             0.03s  
#14 11.43   ✓ user created username can login when using normal authentication     0.03s  
#14 11.44   ✓ user created username cannot login when using external authenticati… 0.03s  
#14 11.44   ✓ user can not exceed username limit                                   0.03s  
#14 11.44   ✓ user can not create the same username                                0.03s  
#14 11.44   ✓ user can not create username that has been deleted                   0.03s  
#14 11.44   ✓ must be unique across users and usernames tables                     0.03s  
#14 11.44   ✓ username must be alpha numeric                                       0.03s  
#14 11.44   ✓ username must be less than max length                                0.03s  
#14 11.44   ✓ user can activate username                                           0.03s  
#14 11.44   ✓ user can deactivate username                                         0.03s  
#14 11.44   ✓ user can enable catch all for username                               0.03s  
#14 11.44   ✓ user can disable catch all for username                              0.03s  
#14 11.44   ✓ user can allow login for username                                    0.03s  
#14 11.44   ✓ user can disallow login for username                                 0.03s  
#14 11.44   ✓ user cannot change login for username when user is external          0.03s  
#14 11.44   ✓ user cannot disallow login for default username                      0.03s  
#14 11.44   ✓ user can update usernames description                                0.03s  
#14 11.45   ✓ user can update username from name                                   0.03s  
#14 11.45   ✓ user can update username auto create regex                           0.03s  
#14 11.45   ✓ username auto create regex must be valid                             0.03s  
#14 11.45   ✓ username auto create regex rejects redos prone patterns              0.03s  
#14 11.45   ✓ user can delete username                                             0.03s  
#14 11.45   ✓ user can not delete default username                                 0.03s  
#14 11.45   ✓ user can update username default recipient                           0.03s  
#14 11.45   ✓ user cannot update username default recipient with unverified recip… 0.03s  
#14 11.45   ✓ user can remove username default recipient                           0.03s  
#14 12.06 
#14 12.06    PASS  Tests\Feature\ApiAuthenticationTest
#14 12.06   ✓ user can retreive valid access token                                 0.08s  
#14 12.06   ✓ user password must be correct to get access token                    0.06s  
#14 12.06   ✓ user must exist to get access token                                  0.13s  
#14 12.06   ✓ user is throttled by middleware for too many requests                0.07s  
#14 12.06   ✓ user cannot get access token with webauthn enabled                   0.07s  
#14 12.06   ✓ user must provide correct otp if enabled                             0.07s  
#14 12.07   ✓ user can logout via api                                              0.03s  
#14 12.07   ✓ user can delete account via api                                      0.03s  
#14 12.07   ✓ user cannot delete account via api when external                     0.03s  
#14 12.07   ✓ user must enter correct password to delete account                   0.03s  
#14 12.07   ✓ user must have valid api key to delete account                       0.03s  
#14 12.37 
#14 12.37    PASS  Tests\Feature\BlocklistCheckApiTest
#14 12.37   ✓ returns 401 when secret required and missing                         0.03s  
#14 12.37   ✓ returns 401 when secret required and wrong                           0.02s  
#14 12.37   ✓ returns 403 when ip not allowed                                      0.02s  
#14 12.37   ✓ returns 422 when recipient missing                                   0.03s  
#14 12.37   ✓ returns block false when recipient unknown                           0.03s  
#14 12.37   ✓ returns block false when not blocked                                 0.03s  
#14 12.38   ✓ returns block true when email blocked                                0.03s  
#14 12.38   ✓ returns block true when domain blocked                               0.04s  
#14 12.38   ✓ increments blocked count and last blocked on blocked sender          0.03s  
#14 12.38   ✓ increments blocked count on domain blocked sender                    0.03s  
#14 12.38   ✓ returns 200 with secret header when secret required                  0.03s  
#14 12.86 
#14 12.86    PASS  Tests\Feature\BlocklistPageTest
#14 12.86   ✓ authenticated user can access blocklist index and sees their entrie… 0.08s  
#14 12.86   ✓ api index returns all expected fields                                0.03s  
#14 12.86   ✓ store response includes blocked fields                               0.04s  
#14 12.86   ✓ user can add email entry                                             0.03s  
#14 12.86   ✓ user can add domain entry                                            0.03s  
#14 12.86   ✓ user can delete own entry                                            0.03s  
#14 12.86   ✓ user cannot delete another users entry                               0.03s  
#14 12.86   ✓ store validates invalid type                                         0.03s  
#14 12.86   ✓ store validates invalid email value                                  0.03s  
#14 12.86   ✓ store validates duplicate entry                                      0.03s  
#14 12.87   ✓ search filters list by value and type                                0.06s  
#14 12.87   ✓ user can bulk delete own entries                                     0.03s  
#14 12.87   ✓ bulk delete validates ids required                                   0.03s  
#14 12.87   ✓ user can bulk add entries                                            0.03s  
#14 13.17 
#14 13.17    PASS  Tests\Feature\DeactivateAliasOneClickTest
#14 13.17   ✓ signed post deactivates alias and sends notification                 0.08s  
#14 13.17   ✓ already inactive alias does not send notification                    0.06s  
#14 13.17   ✓ duplicate requests only send one notification                        0.06s  
#14 13.18   ✓ invalid signature returns 403                                        0.06s  
#14 13.18   ✓ non existent alias returns 404                                       0.06s  
#14 13.49 
#14 13.49    PASS  Tests\Feature\DeleteAliasOneClickTest
#14 13.49   ✓ signed post deletes alias and sends notification                     0.07s  
#14 13.49   ✓ already deleted alias returns 404 and does not send notification     0.06s  
#14 13.49   ✓ duplicate requests only send one notification                        0.08s  
#14 13.49   ✓ invalid signature returns 403                                        0.06s  
#14 13.49   ✓ non existent alias returns 404                                       0.05s  
#14 13.95 
#14 13.95    PASS  Tests\Feature\LoginTest
#14 13.95   ✓ user can login successfully                                          0.06s  
#14 13.95   ✓ user can login and be redirected based on login redirect successful… 0.07s  
#14 13.95   ✓ user can login with any username                                     0.06s  
#14 13.95   ✓ user can login successfully using backup code                        0.07s  
#14 13.95   ✓ user should provide 2fa when 2fa is enabled and user is internal     0.06s  
#14 13.95   ✓ user can login successfully without providing 2fa when external      0.07s  
#14 13.95   ✓ user can receive username reminder email                             0.03s  
#14 13.95   ✓ username reminder email not sent for unkown email                    0.04s  
#14 14.15 
#14 14.15    PASS  Tests\Feature\ParsePostfixMailLogTest
#14 14.15   ✓ it parses rejection lines and creates failed delivery for users      0.04s  
#14 14.15   ✓ it skips missing alias                                               0.03s  
#14 14.15   ✓ it handles log rotation and maintains position                       0.03s  
#14 14.15   ✓ it prevents duplicate rejections                                     0.03s  
#14 14.15   ✓ it parses milter reject lines                                        0.03s  
#14 14.15   ✓ it parses discard lines                                              0.04s  
#14 14.44 
#14 14.44    PASS  Tests\Feature\ProxyAuthenticationTest
#14 14.44   ✓ user can login with proxy headers                                    0.04s  
#14 14.44   ✓ user can register with proxy headers                                 0.03s  
#14 14.44   ✓ user registration fails when username is not valid                   0.03s  
#14 14.44   ✓ user registration change preferred username when already in use      0.03s  
#14 14.44   ✓ user logged in with proxy headers logged out when proxy headers rem… 0.03s  
#14 14.44   ✓ currently normal logged in user logged out when user with proxy hea… 0.04s  
#14 14.45   ✓ user logged in when proxy headers switched                           0.03s  
#14 14.45   ✓ user can login with proxy headers and be redirected based on login…  0.03s  
#14 14.45   ✓ unauthenticated when user with proxy headers cannot login            0.03s  
#14 15.25 
#14 15.25    PASS  Tests\Feature\ReceiveEmailTest
#14 15.25   ✓ it can forward email from file                                       0.04s  
#14 15.25   ✓ it can forward email from file with capitals                         0.04s  
#14 15.25   ✓ it can forward email from file with attachment                       0.03s  
#14 15.25   ✓ it can forward email from file to multiple recipients                0.04s  
#14 15.25   ✓ it can forward email from file with extension                        0.03s  
#14 15.26   ✓ it can forward email with existing alias                             0.03s  
#14 15.26   ✓ it can forward email with uuid generated alias                       0.03s  
#14 15.26   ✓ it can forward email with random word generated alias                0.03s  
#14 15.26   ✓ it can forward email with existing alias and receipients             0.04s  
#14 15.26   ✓ it can attach recipients to new alias with extension                 0.03s  
#14 15.26   ✓ it can not attach unverified recipient to new alias with extension   0.03s  
#14 15.26   ✓ it does not send email if default recipient has not yet been verifi… 0.03s  
#14 15.26   ✓ it can unsubscribe alias by emailing list unsubscribe                0.03s  
#14 15.26   ✓ it cannot unsubscribe alias if not a verified user recipient         0.03s  
#14 15.26   ✓ it can forward email to admin username for root domain               0.03s  
#14 15.26   ✓ it can forward email for custom domain                               0.04s  
#14 15.26   ✓ it can forward email for custom domain with verified sending         0.04s  
#14 15.26   ✓ it can forward email for username                                    0.03s  
#14 15.26   ✓ it can send near bandwidth limit notification                        0.04s  
#14 15.26   ✓ it does not send near bandwidth limit notification more than once p… 0.04s  
#14 15.26   ✓ it can forward email from file for all domains                       0.03s  
#14 15.27   ✓ it can forward email for custom domain with default recipient        0.03s  
#14 15.27   ✓ it can forward email for username with default recipient             0.03s  
#14 15.27   ✓ it can forward email using old reply to and from headers             0.04s  
#14 15.94 
#14 15.94    PASS  Tests\Feature\RegistrationTest
#14 15.94   ✓ user can register successfully                                       0.08s  
#14 15.94   ✓ user cannot register with invalid characters                         0.06s  
#14 15.94   ✓ user can verify email successfully                                   0.06s  
#14 15.94   ✓ user must use valid username                                         0.06s  
#14 15.94   ✓ user must confirm email                                              0.07s  
#14 15.94   ✓ user cannot register with existing email                             0.06s  
#14 15.94   ✓ user cannot register with existing username                          0.06s  
#14 15.94   ✓ user cannot register with blacklisted username                       0.06s  
#14 15.94   ✓ user cannot register with uppercase blacklisted username             0.06s  
#14 15.95   ✓ user cannot register with deleted username                           0.06s  
#14 15.95   ✓ user cannot register with uppercase deleted username                 0.06s  
#14 16.04 
#14 16.04    PASS  Tests\Feature\RemoveUsernameExternalIdTest
#14 16.04   ✓ handle validation should fail when username not provided             0.04s  
#14 16.04   ✓ handle validation should fail when provided username not exists      0.03s  
#14 16.04   ✓ handle should remove external id of provided username when invoked   0.03s  
#14 16.14 
#14 16.14    PASS  Tests\Feature\ReplyToEmailTest
#14 16.14   ✓ it can reply to email from file                                      0.03s  
#14 16.14   ✓ it cannot reply using unverified recipient                           0.03s  
#14 16.14   ✓ it can reply to multiple emails from file                            0.03s  
#14 16.24 
#14 16.24    PASS  Tests\Feature\SendFromEmailTest
#14 16.24   ✓ it can send email from alias from file                               0.04s  
#14 16.25   ✓ it can send from alias to multiple emails from file                  0.03s  
#14 16.25   ✓ it can send email from catch all alias that does not yet exist       0.03s  
#14 16.46 
#14 16.46    PASS  Tests\Feature\SetUsernameExternalIdTest
#14 16.46   ✓ handle validation should fail when username not provided             0.03s  
#14 16.46   ✓ handle validation should fail when external id not provided          0.03s  
#14 16.47   ✓ handle validation should fail when provided username not exists      0.03s  
#14 16.47   ✓ handle validation should fail when provided external id already in…  0.04s  
#14 16.47   ✓ handle should set external id of provided username when invoked      0.03s  
#14 16.47   ✓ handle should set can login of provided username when invoked        0.03s  
#14 16.47   ✓ handle should make username default username of user when invoked    0.03s  
#14 18.97 
#14 18.97    PASS  Tests\Feature\SettingsTest
#14 18.97   ✓ user can update default recipient                                    0.07s  
#14 18.97   ✓ user cannot update to unverified default recipient                   0.07s  
#14 18.97   ✓ user can edit default recipient                                      0.07s  
#14 18.97   ✓ user must enter current password to edit default recipient           0.06s  
#14 18.97   ✓ user can update default username                                     0.06s  
#14 18.98   ✓ user cannot update default username when user is external            0.06s  
#14 18.98   ✓ user can update default alias domain                                 0.06s  
#14 18.98   ✓ user cannot update default alias domain if invalid                   0.06s  
#14 18.98   ✓ user can update default alias format                                 0.07s  
#14 18.98   ✓ user cannot update default alias format if invalid                   0.06s  
#14 18.98   ✓ user can update display from format                                  0.06s  
#14 18.98   ✓ user cannot update display from format if invalid                    0.06s  
#14 18.98   ✓ user can update reply from name                                      0.06s  
#14 18.98   ✓ user can update reply from name to empty                             0.06s  
#14 18.98   ✓ user can update email subject                                        0.07s  
#14 18.98   ✓ user can update email subject to empty                               0.06s  
#14 18.98   ✓ user can update email banner location                                0.06s  
#14 18.98   ✓ user cannot update email banner location to incorrect value          0.06s  
#14 18.98   ✓ user can update spam warning behaviour                               0.06s  
#14 18.98   ✓ user cannot update spam warning behaviour to incorrect value         0.06s  
#14 18.98   ✓ user can update list unsubscribe behaviour                           0.08s  
#14 18.98   ✓ user cannot update list unsubscribe behaviour to incorrect value     0.06s  
#14 18.99   ✓ user can enable use reply to                                         0.06s  
#14 18.99   ✓ user can disable use reply to                                        0.06s  
#14 18.99   ✓ user can enable store failed deliveries                              0.06s  
#14 18.99   ✓ user can disable store failed deliveries                             0.06s  
#14 18.99   ✓ user can enable save alias last used                                 0.07s  
#14 18.99   ✓ user can disable save alias last used                                0.06s  
#14 18.99   ✓ user can generate new backup code                                    0.07s  
#14 18.99   ✓ user must enter current password to generate new backup code         0.06s  
#14 18.99   ✓ user can enable webauthn key                                         0.09s  
#14 18.99   ✓ user can disable webauthn key                                        0.06s  
#14 18.99   ✓ user must enter correct password to disable webauthn key             0.08s  
#14 18.99   ✓ user can delete webauthn key                                         0.06s  
#14 18.99   ✓ user must enter correct password to delete webauthn key              0.06s  
#14 18.99   ✓ user can delete account                                              0.07s  
#14 18.99   ✓ user must enter correct password to delete account                   0.06s  
#14 18.99   ✓ user can import aliases for custom domains                           0.07s  
#14 19.00   ✓ user can download aliases export                                     0.07s  
#14 19.33 
#14 19.33    PASS  Tests\Feature\ShowAliasesTest
#14 19.33   ✓ user can view aliases from the dashboard                             0.09s  
#14 19.33   ✓ latest aliases are listed first                                      0.06s  
#14 19.33   ✓ deleted aliases are not listed                                       0.06s  
#14 19.33   ✓ aliases are listed with recipients                                   0.07s  
#14 19.33   ✓ aliases are listed with only verified recipient options              0.06s  
#14 19.51 
#14 19.51    PASS  Tests\Feature\ShowDomainsTest
#14 19.51   ✓ user can view domains from the domains page                          0.07s  
#14 19.51   ✓ latest domains are listed first                                      0.06s  
#14 19.51   ✓ user can verify domain sending records                               0.06s  
#14 19.84 
#14 19.84    PASS  Tests\Feature\ShowFailedDeliveriesTest
#14 19.84   ✓ user can view failed deliveries from the failed deliveries page      0.08s  
#14 19.84   ✓ latest failed deliveries are listed first                            0.06s  
#14 19.84   ✓ user can filter by inbound rejections                                0.06s  
#14 19.84   ✓ user can filter by outbound bounces                                  0.06s  
#14 19.84   ✓ user can paginate failed deliveries                                  0.07s  
#14 20.11 
#14 20.11    PASS  Tests\Feature\ShowRecipientsTest
#14 20.11   ✓ user can view recipients from the recipients page                    0.08s  
#14 20.11   ✓ latest recipients are listed first                                   0.06s  
#14 20.11   ✓ user can resend recipient verification email                         0.03s  
#14 20.11   ✓ user can verify recipient email successfully                         0.07s  
#14 20.11   ✓ user must wait before resending recipient verification email         0.03s  
#14 20.26 
#14 20.26    PASS  Tests\Feature\ShowUsernamesTest
#14 20.26   ✓ user can view usernames from the usernames page                      0.08s  
#14 20.26   ✓ latest usernames are listed first                                    0.07s  
#14 20.26 
#14 20.26   Tests:    349 passed (1393 assertions)
#14 20.26   Duration: 14.48s
#14 20.26 
#14 DONE 20.5s

@crazy-max crazy-max changed the title run PHPUnit and lockfile validation through Buildx Bake Containerized workflow to run PHPUnit and lockfiles validation May 3, 2026
@crazy-max crazy-max force-pushed the validate-containerized branch 2 times, most recently from 4c5cce1 to ed00360 Compare May 6, 2026 21:01
@crazy-max

crazy-max commented May 6, 2026

Copy link
Copy Markdown
Member Author

Following up #855 (comment) on the possible global npm config angle, I added separate Docker Bake targets to refresh lockfiles in a self-contained container environment.

The new targets are:

docker buildx bake composer-lock
docker buildx bake npm-lock

composer-lock updates the root and postfix Composer lockfiles, and npm-lock updates package-lock.json. This should make lock refreshes reproducible without depending on host npm or Composer config.

Can also invoke both with this bake group:

docker buildx bake update-locks

Would need #858 first

@crazy-max crazy-max force-pushed the validate-containerized branch from ed00360 to bf1f23c Compare May 7, 2026 13:50
@crazy-max crazy-max marked this pull request as ready for review May 7, 2026 16:41
@willbrowningme

Copy link
Copy Markdown
Member

@crazy-max sorry I completely missed this PR, is it all good to go?

@crazy-max

Copy link
Copy Markdown
Member Author

@crazy-max sorry I completely missed this PR, is it all good to go?

Yes all good

@willbrowningme willbrowningme merged commit 202b772 into anonaddy:master May 11, 2026
4 checks passed
@crazy-max crazy-max deleted the validate-containerized branch May 11, 2026 13:16
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.

2 participants