Skip to content

Add support for basic Netlify redirects

Eric Eastwood requested to merge 24-add-redirects into master

Add support for basic Netlify redirects

Benchmarks

Need to look into the numbers to see if actually acceptable:

Previous
$ go test ./internal/redirects -bench=.
goos: darwin
goarch: amd64
pkg: gitlab.com/gitlab-org/gitlab-pages/internal/redirects
BenchmarkRedirectsRewrite/10_redirects-8         	  158222	      7207 ns/op
BenchmarkRedirectsRewrite/100_redirects-8        	   98227	     12031 ns/op
BenchmarkRedirectsRewrite/1000_redirects-8       	   19407	     61143 ns/op
BenchmarkRedirectsParseRedirects/10_redirects-8  	    6319	    173126 ns/op
BenchmarkRedirectsParseRedirects/100_redirects-8 	    5889	    198681 ns/op
BenchmarkRedirectsParseRedirects/1000_redirects-8         	    2431	    499812 ns/op
PASS
ok  	gitlab.com/gitlab-org/gitlab-pages/internal/redirects	8.119s

Latest:

  • Parse 1000 redirects takes 0.296 ms (296043 ns)
  • Rewrite URL matching the last rule in 1000 takes 0.058475 ms (58475 ns)
$ go test ./internal/redirects -bench=.
goos: darwin
goarch: amd64
pkg: gitlab.com/gitlab-org/gitlab-pages/internal/redirects
BenchmarkRedirectsRewrite/10_redirects-8         	  294306	      3864 ns/op
BenchmarkRedirectsRewrite/100_redirects-8        	  128731	      8844 ns/op
BenchmarkRedirectsRewrite/1000_redirects-8       	   20427	     58361 ns/op
BenchmarkRedirectsParseRedirects/10_redirects-8  	   29253	     41024 ns/op
BenchmarkRedirectsParseRedirects/100_redirects-8 	   18249	     65300 ns/op
BenchmarkRedirectsParseRedirects/1000_redirects-8         	    3867	    297138 ns/op
PASS
ok  	gitlab.com/gitlab-org/gitlab-pages/internal/redirects	9.209s

Dev notes

$ make
$ ./gitlab-pages -listen-http ":8090" -pages-root shared/pages -pages-domain pages.gdk.test -log-verbose
make test

go test ./internal/serving/disk/
go test ./internal/serving/disk/ -run TestDisk_ServeFileHTTP
make setup

make lint

Running benchmarks:

go test ./internal/redirects -bench=.

Running acceptance tests:

go test ./ -run TestStatusPage

go test ./ -run TestRedirectStatusPage -test.v
go test ./ -run TestRedirect -test.v
go test ./ -list=Test

Todo


Fix #24 (closed)

Edited by Eric Eastwood

Merge request reports