From 6f4420d1733eac11821c756e37d29d55eb3591d3 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 21 Feb 2023 13:41:20 +0100 Subject: [PATCH 1/2] Simulate a fake DB for psh build hook --- envs/remote.go | 20 +++++++++++++++++++- envs/remote_test.go | 15 ++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/envs/remote.go b/envs/remote.go index 47fdb9e1..8c15c74d 100644 --- a/envs/remote.go +++ b/envs/remote.go @@ -55,7 +55,25 @@ func (r *Remote) Relationships() Relationships { if r.Debug { fmt.Fprint(os.Stderr, "PLATFORM_RELATIONSHIPS env var does not exist\n") } - return nil + + // during the build hook, force a database version to avoid having Doctrine + // trying to connect to the DB to guess it (as the DB is not available yet). + res := make(Relationships) + res["database"] = []map[string]interface{}{{ + "host": "127.0.0.1", + "ip": "127.0.0.1", + "username": "fake-dsn-for-build-hook", + "password": "as-db-is-never-available-yet", + "path": "nowhere", + "port": "3306", + "query": map[string]bool{ + "is_master": true, + }, + "rel": "mysql", + "scheme": "mysql", + "type": "mysql:1337", + }} + return res } var err error diff --git a/envs/remote_test.go b/envs/remote_test.go index b3d511de..e8e144f2 100644 --- a/envs/remote_test.go +++ b/envs/remote_test.go @@ -256,7 +256,20 @@ func (s *RemoteSuite) TestDefaultRoute(c *C) { func (s *RemoteSuite) TestRelationships(c *C) { r := &Remote{} - c.Assert(extractRelationshipsEnvs(r), DeepEquals, Envs{}) + // build hook on psh + c.Assert(extractRelationshipsEnvs(r), DeepEquals, Envs{ + "DATABASE_DATABASE": "nowhere", + "DATABASE_DRIVER": "mysql", + "DATABASE_HOST": "127.0.0.1", + "DATABASE_NAME": "nowhere", + "DATABASE_PASSWORD": "as-db-is-never-available-yet", + "DATABASE_PORT": "3306", + "DATABASE_SERVER": "mysql://127.0.0.1:3306", + "DATABASE_URL": "mysql://fake-dsn-for-build-hook:as-db-is-never-available-yet@127.0.0.1:3306/nowhere?sslmode=disable&charset=utf8mb4&serverVersion=mariadb-1337.0", + "DATABASE_USER": "fake-dsn-for-build-hook", + "DATABASE_USERNAME": "fake-dsn-for-build-hook", + "DATABASE_VERSION": "mariadb-1337.0", + }) os.Setenv("PLATFORM_RELATIONSHIPS", "eyJzZWN1cml0eS1zZXJ2ZXIiOiBbeyJpcCI6ICIxNjkuMjU0LjI2LjIzMSIsICJob3N0IjogInNlY3VyaXR5LXNlcnZlci5pbnRlcm5hbCIsICJzY2hlbWUiOiAiaHR0cCIsICJwb3J0IjogODAsICJyZWwiOiAiaHR0cCJ9XSwgImRhdGFiYXNlIjogW3sidXNlcm5hbWUiOiAibWFpbiIsICJzY2hlbWUiOiAicGdzcWwiLCAiaXAiOiAiMTY5LjI1NC4xMjAuNDgiLCAiaG9zdCI6ICJkYXRhYmFzZS5pbnRlcm5hbCIsICJyZWwiOiAicG9zdGdyZXNxbCIsICJwYXRoIjogIm1haW4iLCAicXVlcnkiOiB7ImlzX21hc3RlciI6IHRydWV9LCAicGFzc3dvcmQiOiAibWFpbiIsICJwb3J0IjogNTQzMn1dfQ==") c.Assert(extractRelationshipsEnvs(r), DeepEquals, Envs{ From 36ee5f482962480bf64de90c7c75301393ae1e15 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 22 Feb 2023 08:16:57 +0100 Subject: [PATCH 2/2] Add more artifacts in CI to ease testing --- .github/workflows/releaser.yml | 8 ++++++++ envs/remote.go | 2 +- envs/remote_test.go | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml index 0bbc8f95..c872b127 100644 --- a/.github/workflows/releaser.yml +++ b/.github/workflows/releaser.yml @@ -98,7 +98,15 @@ jobs: uses: actions/upload-artifact@v3 with: retention-days: 5 + name: binaries path: dist + - + name: Archive Linux binary + uses: actions/upload-artifact@v3 + with: + retention-days: 5 + name: linux-binary + path: dist/symfony-cli_linux_amd64.tar.gz - name: Install Cloudsmith CLI run: pip install --upgrade cloudsmith-cli diff --git a/envs/remote.go b/envs/remote.go index 8c15c74d..7e6b7eea 100644 --- a/envs/remote.go +++ b/envs/remote.go @@ -71,7 +71,7 @@ func (r *Remote) Relationships() Relationships { }, "rel": "mysql", "scheme": "mysql", - "type": "mysql:1337", + "type": "mysql:13.37", }} return res } diff --git a/envs/remote_test.go b/envs/remote_test.go index e8e144f2..dc738a4d 100644 --- a/envs/remote_test.go +++ b/envs/remote_test.go @@ -265,10 +265,10 @@ func (s *RemoteSuite) TestRelationships(c *C) { "DATABASE_PASSWORD": "as-db-is-never-available-yet", "DATABASE_PORT": "3306", "DATABASE_SERVER": "mysql://127.0.0.1:3306", - "DATABASE_URL": "mysql://fake-dsn-for-build-hook:as-db-is-never-available-yet@127.0.0.1:3306/nowhere?sslmode=disable&charset=utf8mb4&serverVersion=mariadb-1337.0", + "DATABASE_URL": "mysql://fake-dsn-for-build-hook:as-db-is-never-available-yet@127.0.0.1:3306/nowhere?sslmode=disable&charset=utf8mb4&serverVersion=mariadb-13.37.0", "DATABASE_USER": "fake-dsn-for-build-hook", "DATABASE_USERNAME": "fake-dsn-for-build-hook", - "DATABASE_VERSION": "mariadb-1337.0", + "DATABASE_VERSION": "mariadb-13.37.0", }) os.Setenv("PLATFORM_RELATIONSHIPS", "eyJzZWN1cml0eS1zZXJ2ZXIiOiBbeyJpcCI6ICIxNjkuMjU0LjI2LjIzMSIsICJob3N0IjogInNlY3VyaXR5LXNlcnZlci5pbnRlcm5hbCIsICJzY2hlbWUiOiAiaHR0cCIsICJwb3J0IjogODAsICJyZWwiOiAiaHR0cCJ9XSwgImRhdGFiYXNlIjogW3sidXNlcm5hbWUiOiAibWFpbiIsICJzY2hlbWUiOiAicGdzcWwiLCAiaXAiOiAiMTY5LjI1NC4xMjAuNDgiLCAiaG9zdCI6ICJkYXRhYmFzZS5pbnRlcm5hbCIsICJyZWwiOiAicG9zdGdyZXNxbCIsICJwYXRoIjogIm1haW4iLCAicXVlcnkiOiB7ImlzX21hc3RlciI6IHRydWV9LCAicGFzc3dvcmQiOiAibWFpbiIsICJwb3J0IjogNTQzMn1dfQ==")