Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
09fd07a
reefd server container
aslonnie Mar 14, 2025
7397f7b
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Mar 15, 2025
7ca54f6
build reefd container
aslonnie Mar 15, 2025
c4f9a9b
Merge branch 'lonnie-250314-reefdcont' into lonnie-dev
aslonnie Mar 15, 2025
abbed09
.
aslonnie Mar 15, 2025
45be12a
doorway
aslonnie Mar 15, 2025
3a7f8ee
fix config file misnaming
aslonnie Mar 15, 2025
02697ff
Merge branch 'lonnie-250314-reefdcont' into lonnie-dev
aslonnie Mar 15, 2025
5456c6c
plain progress for clearer logging
aslonnie Mar 15, 2025
7f6d13a
Merge branch 'lonnie-250314-reefdcont' into lonnie-dev
aslonnie Mar 15, 2025
cc2b9c1
doorway and reefd
aslonnie Mar 15, 2025
3aabf3f
Merge branch 'main' into lonnie-dev
aslonnie Mar 21, 2025
0061392
Merge remote-tracking branch 'origin' into lonnie-dev
aslonnie Mar 22, 2025
c9be4de
Merge remote-tracking branch 'origin/lonnie-dev' into lonnie-dev
aslonnie Mar 22, 2025
5f99fa9
remove old gitignore
aslonnie Mar 22, 2025
04cc1aa
.
aslonnie Mar 22, 2025
1fc0aed
.
aslonnie Mar 23, 2025
1780d31
.
aslonnie Mar 24, 2025
cfb577f
[reefd] add windows instance reaper
aslonnie Mar 24, 2025
2d15fea
Merge branch 'lonnie-250323-reaper' into lonnie-dev
aslonnie Mar 24, 2025
89699b0
limit linewidths to be 80 chars
aslonnie Mar 24, 2025
5dbd026
Merge remote-tracking branch 'origin/main' into lonnie-250323-reaper
aslonnie Mar 31, 2025
ebbdaaa
.
aslonnie Mar 31, 2025
a8e7b68
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Mar 31, 2025
ff0c25a
Merge branch 'lonnie-250323-reaper' into lonnie-dev
aslonnie Mar 31, 2025
23c9e3f
.
aslonnie Mar 31, 2025
16dfd52
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Mar 31, 2025
b970c54
.
aslonnie Apr 2, 2025
604fd03
add more dev stuff
aslonnie Apr 2, 2025
36893e2
.
aslonnie Apr 3, 2025
5d78672
add api
aslonnie Apr 3, 2025
516d9da
.
aslonnie Apr 3, 2025
df176c4
.
aslonnie Apr 3, 2025
818d04e
.
aslonnie Apr 4, 2025
daf4700
.
aslonnie Apr 4, 2025
7837fda
.
aslonnie Apr 4, 2025
4852f93
.
aslonnie Apr 4, 2025
0c09828
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Apr 4, 2025
4d4eef4
.
aslonnie Apr 5, 2025
221d1fc
.
aslonnie Apr 5, 2025
adc52ed
.
aslonnie Apr 7, 2025
b3ff5b6
[rayci] split config file into smaller files
aslonnie Apr 7, 2025
551ec1e
Merge branch 'lonnie-250407-config' into lonnie-dev
aslonnie Apr 8, 2025
731fa30
fix tests
aslonnie Apr 8, 2025
e078479
more config adjustment
aslonnie Apr 8, 2025
740deb6
.
aslonnie Apr 8, 2025
5fa2bee
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Apr 8, 2025
06651e0
Merge remote-tracking branch 'origin/main' into lonnie-dev
aslonnie Apr 11, 2025
b9b41ed
Merge branch 'main' into lonnie-dev
aslonnie Apr 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions doorway/_build/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.gitignore
doorway.tgz
2 changes: 2 additions & 0 deletions doorway/_build/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/doorway
/doorway.tgz
27 changes: 27 additions & 0 deletions doorway/_build/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# syntax=docker/dockerfile:1.3-labs

FROM ubuntu:24.04

RUN <<EOF
#!/bin/bash

set -euo pipefail
set -x

apt-get update -y
apt-get upgrade -y
apt-get install -y tzdata ca-certificates

useradd -d /home/app -u 1001 app
mkdir -p /opt/app/bin /opt/app/etc /opt/app/var
mkdir -p /home/app
chown -R app:app /opt/app
chown -R app:app /home/app

EOF

COPY doorway /opt/app/bin/doorway

USER app
WORKDIR /opt/app
CMD ["/opt/app/bin/doorway"]
12 changes: 12 additions & 0 deletions doorway/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

set -euo pipefail
set -x

CGO_ENABLED=0 go build -trimpath -o _build/doorway .
(
cd _build
docker build --progress=plain -t cr.ray.io/rayproject/doorway .
)

docker save -o _build/doorway.tgz cr.ray.io/rayproject/doorway
60 changes: 60 additions & 0 deletions doorway/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package main

import (
"flag"
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
"os"

"golang.org/x/crypto/acme/autocert"
)

const contactEmail = "[email protected]"

func run(domain, proxyTo, certDir string) error {
// serve https on domain, use letsencrypt for certs
// and forward all connections to proxyTo

if err := os.MkdirAll(certDir, 0755); err != nil {
return fmt.Errorf("make cert cache dir: %w", err)
}

m := &autocert.Manager{
Cache: autocert.DirCache(certDir),
Prompt: autocert.AcceptTOS,
Email: contactEmail,
HostPolicy: autocert.HostWhitelist(domain),
}

proxy := httputil.NewSingleHostReverseProxy(&url.URL{
Scheme: "http",
Host: proxyTo,
})

const serveAddr = ":8443"

s := &http.Server{
Addr: serveAddr,
TLSConfig: m.TLSConfig(),
Handler: proxy,
}

log.Printf("serving at %s", serveAddr)
log.Printf("forwarding to %s", proxyTo)

return s.ListenAndServeTLS("", "")
}

func main() {
domain := flag.String("domain", "ci.ray.io", "domain to serve")
proxyTo := flag.String("proxy_to", "reefd:8000", "forward to this address")
certDir := flag.String("cert_dir", "var/certs", "cache dir for certs")
flag.Parse()

if err := run(*domain, *proxyTo, *certDir); err != nil {
log.Fatal(err)
}
}
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ require (
github.com/aws/aws-sdk-go-v2/service/ec2 v1.210.1
github.com/buildkite/go-buildkite/v4 v4.1.0
github.com/google/go-containerregistry v0.20.3
github.com/tailscale/hujson v0.0.0-20250226034555-ec1d1c113d33
golang.org/x/crypto v0.32.0
gopkg.in/yaml.v3 v3.0.1
modernc.org/sqlite v1.37.0
)
Expand Down Expand Up @@ -65,6 +67,7 @@ require (
golang.org/x/net v0.34.0 // indirect
golang.org/x/sync v0.12.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.21.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
google.golang.org/grpc v1.68.1 // indirect
Expand Down
6 changes: 6 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tailscale/hujson v0.0.0-20250226034555-ec1d1c113d33 h1:idh63uw+gsG05HwjZsAENCG4KZfyvjK03bpjxa5qRRk=
github.com/tailscale/hujson v0.0.0-20250226034555-ec1d1c113d33/go.mod h1:EbW0wDK/qEUYI0A5bqq0C2kF8JTQwWONmGDBbzsxxHo=
github.com/vbatts/tar-split v0.12.1 h1:CqKoORW7BUWBe7UL/iqTVvkTBOF8UvOMKOIZykxnnbo=
github.com/vbatts/tar-split v0.12.1/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand All @@ -143,6 +145,8 @@ go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
Expand All @@ -168,6 +172,8 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
Expand Down
59 changes: 59 additions & 0 deletions raycirun/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package raycirun

import (
"context"
"flag"
"log"
"os"
"strings"
)

func parseTags(tags string) []string {
if tags == "" {
return nil
}
return strings.Split(tags, ",")
}

// Main is the entry point for the raycirun command.
func Main() {
var (
org = flag.String("org", "ray-project", "organization to run")
pipeline = flag.String(
"pipeline", "microcheck", "buildkite pipeline to trigger",
)

branch = flag.String("branch", "", "branch to run")
pr = flag.String("pr", "", "pr to run")
commit = flag.String("commit", "HEAD", "commit to run")

tag = flag.String(
"tags", "", "tags to run, separated by commas",
)
)

flag.Parse()
args := flag.Args()

token := os.Getenv("BUILDKITE_TOKEN")
if token == "" {
log.Fatal("BUILDKITE_TOKEN is not set")
}

b := &Build{
Org: *org,
Branch: *branch,
PR: *pr,
Commit: *commit,
Pipeline: *pipeline,
Tags: parseTags(*tag),
Selects: args,
}

ctx := context.Background()
build, err := b.Create(ctx, token)
if err != nil {
log.Fatalf("failed to create build: %v", err)
}
log.Printf("Build created: %s", build.WebURL)
}
7 changes: 7 additions & 0 deletions raycirun/raycirun/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package main

import (
"github.com/ray-project/rayci/raycirun"
)

func main() { raycirun.Main() }
1 change: 1 addition & 0 deletions reefd/_build/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.gitignore
reefd.tgz
config.hujson
1 change: 1 addition & 0 deletions reefd/_build/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/reefd
/reefd.tgz
/config.hujson
6 changes: 6 additions & 0 deletions reefd/_build/config.hujson
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"UserKeys": {
"aslonnie": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKImkkftVbV4h+4V9tu1YAQaN5GF+jHDMVs7QnKTEgRJ",
}
"DisableBackground": true,
}
Binary file modified reefd/_build/reefd
Binary file not shown.
1 change: 1 addition & 0 deletions reefd/_dev/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/config.hujson
8 changes: 8 additions & 0 deletions reefd/_tmpl/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!doctype html>
<html lang="en"><head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{{.Title}}</title>
</head><body>

</body></html>
Loading