diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..47324e300 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: ci + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + build-and-test: + runs-on: ubuntu-latest + permissions: + contents: "read" + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup with node and yarn + uses: actions/setup-node@v3 + with: + node-version: "16" + cache-dependency-path: "web/yarn.lock" + + - name: Set yarn version + run: make web/set-yarn-version + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: "^1.18" + + - name: Build web + run: make web/build + + - name: Run web test + run: make web/test + + - name: Build + run: make bin/linux + + - name: Run Go test + run: make go/test diff --git a/.yarnrc.yml b/.yarnrc.yml index 7f3d03fd8..3186f3f07 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1 +1 @@ -nodeLinker: "node-modules" +nodeLinker: node-modules diff --git a/Makefile b/Makefile index 80a19165d..2a9920675 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,8 @@ .PHONY: default default: help -.PHONY: build-ui -build-ui: - cd web; \ - yarn install; \ - rm -rf dist/; \ - yarn build; - .PHONY: build -build: build-ui +build: web/build rm -f ./hermes CGO_ENABLED=0 go build -o ./hermes ./cmd/hermes @@ -39,11 +32,11 @@ docker/postgres/stop: ## Stop PostgreSQL in Docker docker-compose down .PHONY: go/build -go/build: +go/build: ## Run Go build CGO_ENABLED=0 go build -o ./hermes ./cmd/hermes .PHONY: go/test -go/test: +go/test: ## Run Go test go test ./... .PHONY: go/test/with-docker-postgres @@ -66,6 +59,18 @@ run: test: go test ./... +.PHONY: web/build +web/build: + cd web; \ + yarn install; \ + rm -rf dist/; \ + yarn build; + +.PHONY: web/test +web/test: ## Run web test + cd web; \ + yarn test:ember; + .PHONY: web/install-deps web/install-deps: ## Install web application dependencies cd web \ @@ -76,3 +81,7 @@ web/run: ## Run web application while proxying backend requests web/run: web/install-deps cd web \ && yarn start:with-proxy + +web/set-yarn-version: ## Set yarn version + cd web \ + && yarn set version 3.3.0 diff --git a/web/package.json b/web/package.json index 6acce3075..7fd2de912 100644 --- a/web/package.json +++ b/web/package.json @@ -131,5 +131,6 @@ "tailwindcss": "^3.0.23", "torii": "^0.10.1", "webpack": "^5.70.0" - } + }, + "packageManager": "yarn@3.3.0" } diff --git a/web/yarn.lock b/web/yarn.lock index 0ef22dee9..0b34a3046 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -10701,6 +10701,45 @@ __metadata: languageName: node linkType: hard +"heimdalljs-fs-monitor@npm:^1.1.0": + version: 1.1.1 + resolution: "heimdalljs-fs-monitor@npm:1.1.1" + dependencies: + callsites: ^3.1.0 + clean-stack: ^2.2.0 + extract-stack: ^2.0.0 + heimdalljs: ^0.2.3 + heimdalljs-logger: ^0.1.7 + checksum: 0932adf032888bcc22c9ff8b5d832c708f1303b04e5a8c34b88dac09948bf6a45e4ea7d34bfdf30a3aaa41eabb0311d0e00e0fad1da862e16cc0950db50101cd + languageName: node + linkType: hard + +"heimdalljs-graph@npm:^1.0.0": + version: 1.0.0 + resolution: "heimdalljs-graph@npm:1.0.0" + checksum: eef4a3de227fa4b3e6b20f634b7c1bbb3c7ae9a83639444ce7f5f8ffbc979e205021538452ecd92804d49013245ed9a989075c8c9147cca8666f4d7a1983da93 + languageName: node + linkType: hard + +"heimdalljs-logger@npm:^0.1.10, heimdalljs-logger@npm:^0.1.7, heimdalljs-logger@npm:^0.1.9": + version: 0.1.10 + resolution: "heimdalljs-logger@npm:0.1.10" + dependencies: + debug: ^2.2.0 + heimdalljs: ^0.2.6 + checksum: 40a698843aa4773e3376f4e000c87599460971f4411b402985526a8f82563f5486fc85bfde90ce3e63d25381cf417289e870242321ce92ade32ea3b91585cfad + languageName: node + linkType: hard + +"heimdalljs@npm:^0.2.0, heimdalljs@npm:^0.2.1, heimdalljs@npm:^0.2.3, heimdalljs@npm:^0.2.5, heimdalljs@npm:^0.2.6": + version: 0.2.6 + resolution: "heimdalljs@npm:0.2.6" + dependencies: + rsvp: ~3.2.1 + checksum: 5b28d3df4e77ea94293b43c29f0a358381aa811079817f780a1dafc9d244c891a0a713691a3c53d0d2dc31a76484fb36d998e7ae5040ef4b52e8c4a00d2173ae + languageName: node + linkType: hard + "hermes@workspace:.": version: 0.0.0-use.local resolution: "hermes@workspace:." @@ -10806,45 +10845,6 @@ __metadata: languageName: unknown linkType: soft -"heimdalljs-fs-monitor@npm:^1.1.0": - version: 1.1.1 - resolution: "heimdalljs-fs-monitor@npm:1.1.1" - dependencies: - callsites: ^3.1.0 - clean-stack: ^2.2.0 - extract-stack: ^2.0.0 - heimdalljs: ^0.2.3 - heimdalljs-logger: ^0.1.7 - checksum: 0932adf032888bcc22c9ff8b5d832c708f1303b04e5a8c34b88dac09948bf6a45e4ea7d34bfdf30a3aaa41eabb0311d0e00e0fad1da862e16cc0950db50101cd - languageName: node - linkType: hard - -"heimdalljs-graph@npm:^1.0.0": - version: 1.0.0 - resolution: "heimdalljs-graph@npm:1.0.0" - checksum: eef4a3de227fa4b3e6b20f634b7c1bbb3c7ae9a83639444ce7f5f8ffbc979e205021538452ecd92804d49013245ed9a989075c8c9147cca8666f4d7a1983da93 - languageName: node - linkType: hard - -"heimdalljs-logger@npm:^0.1.10, heimdalljs-logger@npm:^0.1.7, heimdalljs-logger@npm:^0.1.9": - version: 0.1.10 - resolution: "heimdalljs-logger@npm:0.1.10" - dependencies: - debug: ^2.2.0 - heimdalljs: ^0.2.6 - checksum: 40a698843aa4773e3376f4e000c87599460971f4411b402985526a8f82563f5486fc85bfde90ce3e63d25381cf417289e870242321ce92ade32ea3b91585cfad - languageName: node - linkType: hard - -"heimdalljs@npm:^0.2.0, heimdalljs@npm:^0.2.1, heimdalljs@npm:^0.2.3, heimdalljs@npm:^0.2.5, heimdalljs@npm:^0.2.6": - version: 0.2.6 - resolution: "heimdalljs@npm:0.2.6" - dependencies: - rsvp: ~3.2.1 - checksum: 5b28d3df4e77ea94293b43c29f0a358381aa811079817f780a1dafc9d244c891a0a713691a3c53d0d2dc31a76484fb36d998e7ae5040ef4b52e8c4a00d2173ae - languageName: node - linkType: hard - "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1"