good morning!!!!

Skip to content
Snippets Groups Projects
Unverified Commit 128b1a2f authored by Anmol Sethi's avatar Anmol Sethi
Browse files

Add wasm CI

parent f6a26896
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,7 @@ on: [push]
jobs:
fmt:
runs-on: ubuntu-latest
container: docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
container: docker://nhooyr/websocket-ci@sha256:6f6a00284eff008ad2cece8f3d0b4a2a3a8f2fcf7a54c691c64a92403abc4c75
steps:
- uses: actions/checkout@v1
with:
......@@ -12,7 +12,7 @@ jobs:
- run: ./ci/fmt.sh
lint:
runs-on: ubuntu-latest
container: docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
container: docker://nhooyr/websocket-ci@sha256:6f6a00284eff008ad2cece8f3d0b4a2a3a8f2fcf7a54c691c64a92403abc4c75
steps:
- uses: actions/checkout@v1
with:
......@@ -20,7 +20,7 @@ jobs:
- run: ./ci/lint.sh
test:
runs-on: ubuntu-latest
container: docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
container: docker://nhooyr/websocket-ci@sha256:6f6a00284eff008ad2cece8f3d0b4a2a3a8f2fcf7a54c691c64a92403abc4c75
steps:
- uses: actions/checkout@v1
with:
......@@ -28,3 +28,11 @@ jobs:
- run: ./ci/test.sh
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
wasm:
runs-on: ubuntu-latest
container: docker://nhooyr/websocket-ci@sha256:6f6a00284eff008ad2cece8f3d0b4a2a3a8f2fcf7a54c691c64a92403abc4c75
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- run: ./ci/wasm.sh
......@@ -2,18 +2,23 @@ FROM golang:1
ENV DEBIAN_FRONTEND=noninteractive
ENV GOPATH=/root/gopath
ENV PATH=$GOPATH/bin:$PATH
ENV GOFLAGS="-mod=readonly"
ENV PAGER=cat
ENV CI=true
RUN apt-get update && \
apt-get install -y shellcheck npm && \
apt-get install -y shellcheck npm chromium && \
npm install -g prettier
# https://github.com/golang/go/wiki/WebAssembly#running-tests-in-the-browser
RUN go get github.com/agnivade/wasmbrowsertest && \
mv $GOPATH/bin/wasmbrowsertest $GOPATH/bin/go_js_wasm_exec
RUN git config --global color.ui always
# Cache go modules.
# Cache go modules and build cache.
COPY . /tmp/websocket
RUN cd /tmp/websocket && \
go mod download && \
CI= ./ci/run.sh && \
rm -rf /tmp/websocket
......@@ -9,3 +9,4 @@ cd "$(git rev-parse --show-toplevel)"
./ci/fmt.sh
./ci/lint.sh
./ci/test.sh
./ci/wasm.sh
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${0}")"
cd "$(git rev-parse --show-toplevel)"
GOOS=js GOARCH=wasm go vet ./...
go install golang.org/x/lint/golint
# Get passing later.
#GOOS=js GOARCH=wasm golint -set_exit_status ./...
GOOS=js GOARCH=wasm go test ./internal/wsjs
......@@ -17,11 +17,11 @@ require (
go.coder.com/go-tools v0.0.0-20190317003359-0c6a35b74a16
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/multierr v1.1.0
golang.org/x/lint v0.0.0-20190409202823-959b441ac422
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
golang.org/x/sys v0.0.0-20190919044723-0c1ff786ef13 // indirect
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
golang.org/x/tools v0.0.0-20190903163617-be0da057c5e3
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
gotest.tools/gotestsum v0.3.5
mvdan.cc/sh v2.6.4+incompatible
......
......@@ -70,8 +70,8 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/
golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422 h1:QzoH/1pFpZguR8NrRHLcO6jKqfv2zpuSqZLgdm7ZmjI=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac h1:8R1esu+8QioDxo4E4mX6bFztO+dMTM49DNAaWfO5OeY=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
......@@ -95,8 +95,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190903163617-be0da057c5e3 h1:1cLrGl9PL64Mzl9NATDCqFE57dVYwWOkoPXvppEnjO4=
golang.org/x/tools v0.0.0-20190903163617-be0da057c5e3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 h1:bw9doJza/SFBEweII/rHQh338oozWyiFsBRHtrflcws=
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
......
// +build js
// websocketjs implements typed access to the browser javascript WebSocket API.
// Package wsjs implements typed access to the browser javascript WebSocket API.
// https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
package websocketjs
package wsjs
import (
"context"
......@@ -101,8 +101,14 @@ type MessageEvent struct {
func (c *WebSocket) OnMessage(fn func(m MessageEvent)) {
c.addEventListener("message", func(e js.Value) {
var data []byte
arrayBuffer := e.Get("data")
data := extractArrayBuffer(arrayBuffer)
if arrayBuffer.Type() == js.TypeString {
data = []byte(arrayBuffer.String())
} else {
data = extractArrayBuffer(arrayBuffer)
}
me := MessageEvent{
Data: data,
......
// +build js
package websocketjs
package wsjs
import (
"context"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment