DoDiODev opened a new pull request, #9312:
URL: https://github.com/apache/devlake/pull/9312

   ### ⚠️ Pre Checklist
   
   > Please complete _ALL_ items in this checklist, and remove before submitting
   
   - [x] I have read through the [Contributing 
Documentation](https://devlake.apache.org/community/).
   - [x] I have added relevant tests.
   - [x] I have added relevant documentation. (n/a: no user-facing behaviour 
change; the new script documents its usage in its header)
   - [x] I will add labels to the PR, such as `pr-type/bug-fix`, 
`pr-type/feature-development`, etc.
   
   ### Summary
   Since the bump to `grafana/grafana:13.3.0` (#9295) the `devlake-dashboard` 
image no longer starts:
   
   ```
   exec /entrypoint.sh: no such file or directory
   ```
   
   The 13.3.0 base image (Alpine/busybox) no longer ships `bash`, but 
`grafana/scripts/entrypoint.sh` used `#!/bin/bash`.
   
   - **Fix:** the entrypoint now runs under POSIX `/bin/sh`. Its only bashism 
(`$'\n'` in a parameter expansion) is replaced by a portable equivalent. This 
change does not add `bash` to the image.
   - **Test:** new `grafana/scripts/smoke-test.sh <image> [mysql|postgresql]` 
starts the image next to a throwaway database. It checks that the container 
keeps running, `/api/health` is OK, the entrypoint creates the DevLake 
datasource, and the datasource health check reaches the database. It only uses 
uniquely named containers/network and removes them afterwards.
   - **CI:** new `grafana-image-smoke-test.yml` runs on pull requests touching 
`grafana/**` and builds the image and runs the smoke test against MySQL and 
PostgreSQL. A future base-image bump (e.g. from Dependabot) that breaks startup 
would then fail before merge.
   
   ### Does this close any open issues?
   Regression from #9295; no separate issue.
   
   ### Screenshots
   n/a
   
   ### Other Information
   Validation:
   - `grafana/scripts/smoke-test.sh <image built from main> postgresql` → 
**failed** as expected (`grafana container exited (exit code 255)`, `exec 
/entrypoint.sh: no such file or directory`).
   - `grafana/scripts/smoke-test.sh <image built from this branch> mysql` → 
**passed**.
   - `grafana/scripts/smoke-test.sh <image built from this branch> postgresql` 
→ **passed**.
   - `shellcheck grafana/scripts/smoke-test.sh grafana/scripts/entrypoint.sh` → 
**passed**.
   - CI on the fork, including both smoke-test jobs: 
https://github.com/DoDiODev/devlake/actions/runs/41608549077 (all green).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to