heroku / heroku-buildpack-static

[DEPRECATED] Heroku buildpack for handling static sites and single page web apps
MIT License
674 stars 427 forks source link

Update ngx_mruby to 2.2.4 and nginx to 1.21.3 #240

Closed edmorley closed 2 years ago

edmorley commented 2 years ago

The binary build process for this buildpack uses the default nginx version specified by ngx_mruby. As such, updating ngx_mruby from 2.2.3 to 2.2.4 means the bundled nginx version is also updated from 1.19.0 to 1.21.3: https://github.com/matsumotory/ngx_mruby/blob/v2.2.3/nginx_version https://github.com/matsumotory/ngx_mruby/blob/v2.2.4/nginx_version

Changes: https://github.com/matsumotory/ngx_mruby/releases/tag/v2.2.4 https://nginx.org/en/CHANGES

GUS-W-10346704.

edmorley commented 2 years ago

Binaries published using the process described here: https://github.com/heroku/heroku-buildpack-static#releasing-new-binaries

$ make build
$ <export env vars>
$ make sync
Performing dry run of sync to heroku-buildpack-static...

(dryrun) upload: archives/heroku-18/nginx-1.21.3-ngx_mruby-2.2.4.tgz to s3://heroku-buildpack-static/heroku-18/nginx-1.21.3-ngx_mruby-2.2.4.tgz
(dryrun) upload: archives/heroku-20/nginx-1.21.3-ngx_mruby-2.2.4.tgz to s3://heroku-buildpack-static/heroku-20/nginx-1.21.3-ngx_mruby-2.2.4.tgz

Continue with sync? [y/N]? y

upload: archives/heroku-18/nginx-1.21.3-ngx_mruby-2.2.4.tgz to s3://heroku-buildpack-static/heroku-18/nginx-1.21.3-ngx_mruby-2.2.4.tgz
upload: archives/heroku-20/nginx-1.21.3-ngx_mruby-2.2.4.tgz to s3://heroku-buildpack-static/heroku-20/nginx-1.21.3-ngx_mruby-2.2.4.tgz

Confirmed still working on Heroku-20 with the newer ngx_mruby/nginx versions:

$ mkdir static-test && cd $_
$ git init
...
$ h create --buildpack 'https://github.com/heroku/heroku-buildpack-static#edmorley/bump-versions'
...
$ mkdir dist
$ echo 'hello' > dist/hello.txt
$ echo '{"root": "dist/"}' > static.json
$ git add -A && git commit -m 'Initial commit' && git push heroku main
...
remote: -----> Building on the Heroku-20 stack
remote: -----> Using buildpack: https://github.com/heroku/heroku-buildpack-static#edmorley/bump-versions
remote: -----> Static HTML app detected
remote: -----> Installed nginx 1.21.3 to /app/bin
remote: -----> Discovering process types
remote:        Procfile declares types     -> (none)
remote:        Default types for buildpack -> web
remote:
remote: -----> Compressing...
remote:        Done: 6.6M
remote: -----> Launching...
remote:        Released v3
remote:        https://sleepy-beach-76012.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/sleepy-beach-76012.git
 * [new branch]      main -> main

$ curl https://sleepy-beach-76012.herokuapp.com/hello.txt
hello

$ h logs
...
2022-05-19T06:52:51.473873+00:00 heroku[web.1]: Starting process with command `bin/boot`
2022-05-19T06:52:52.409774+00:00 app[web.1]: Starting log redirection...
2022-05-19T06:52:52.409935+00:00 app[web.1]: Starting nginx...
2022-05-19T06:52:53.080182+00:00 heroku[web.1]: State changed from starting to up
2022-05-19T06:53:21.981736+00:00 heroku[router]: at=info method=GET path="/hello.txt" host=sleepy-beach-76012.herokuapp.com request_id=4b380d64-f0c3-4404-97a9-84417246e1a1 fwd="REDACTED" dyno=web.1 connect=0ms service=2ms status=200 bytes=244 protocol=https
2022-05-19T06:53:21.981880+00:00 app[web.1]: 10.1.28.88 - - [19/May/2022:06:53:21 +0000] "GET /hello.txt HTTP/1.1" 200 6 "-" "curl/7.79.1"
Malax commented 2 years ago

Confirmed still working on Heroku-20

Did we check on heroku-18?

edmorley commented 2 years ago

Did we check on heroku-18?

No, because the main issue is "are the ngx_ruby templates in this repo still compatible with newer ngx_mruby" (albeit compat issues are unlikely given only a bump from 2.2.4 to 2.2.5), and the files are the same across all stack versions.

edmorley commented 2 years ago

I checked Heroku-18 now just in case, and it was fine.