mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
* ci: add integration containers for duo and haproxy This change utilises specific integration containers for the DuoPush and HAProxy suites. In the case of DuoPush suite specifically in dev mode the container will be built on suite startup. * ci: factorize pre-command hook and unset async on trigger steps
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
package suites
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
var duoPushSuiteName = "DuoPush"
|
|
|
|
func init() {
|
|
dockerEnvironment := NewDockerEnvironment([]string{
|
|
"internal/suites/docker-compose.yml",
|
|
"internal/suites/DuoPush/docker-compose.yml",
|
|
"internal/suites/example/compose/authelia/docker-compose.backend.{}.yml",
|
|
"internal/suites/example/compose/authelia/docker-compose.frontend.{}.yml",
|
|
"internal/suites/example/compose/nginx/backend/docker-compose.yml",
|
|
"internal/suites/example/compose/nginx/portal/docker-compose.yml",
|
|
"internal/suites/example/compose/duo-api/docker-compose.{}.yml",
|
|
})
|
|
|
|
setup := func(suitePath string) error {
|
|
if err := dockerEnvironment.Up(); err != nil {
|
|
return err
|
|
}
|
|
|
|
return waitUntilAutheliaIsReady(dockerEnvironment, duoPushSuiteName)
|
|
}
|
|
|
|
displayAutheliaLogs := func() error {
|
|
backendLogs, err := dockerEnvironment.Logs("authelia-backend", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
fmt.Println(backendLogs)
|
|
|
|
frontendLogs, err := dockerEnvironment.Logs("authelia-frontend", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
fmt.Println(frontendLogs)
|
|
|
|
duoAPILogs, err := dockerEnvironment.Logs("duo-api", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
fmt.Println(duoAPILogs)
|
|
|
|
return nil
|
|
}
|
|
|
|
teardown := func(suitePath string) error {
|
|
err := dockerEnvironment.Down()
|
|
_ = os.Remove("/tmp/db.sqlite3")
|
|
|
|
return err
|
|
}
|
|
|
|
GlobalRegistry.Register(duoPushSuiteName, Suite{
|
|
SetUp: setup,
|
|
SetUpTimeout: 5 * time.Minute,
|
|
OnSetupTimeout: displayAutheliaLogs,
|
|
OnError: displayAutheliaLogs,
|
|
TestTimeout: 3 * time.Minute,
|
|
TearDown: teardown,
|
|
TearDownTimeout: 2 * time.Minute,
|
|
|
|
Description: `This suite has been created to test Authelia against
|
|
the Duo API for push notifications. It allows a user to validate second factor
|
|
with a mobile phone.`,
|
|
})
|
|
}
|