Commit Graph

53 Commits

Author SHA1 Message Date
Iain Sproat 5dcd149160 fix(preview service): create dockerfile using puppeteer's example dockerfile (#2408) 2024-06-19 18:46:00 +01:00
Iain Sproat c85761c636 fix(preview service): set userDataDir and update list of dependencies for chrome (#2400)
* fix(preview service): update list of dependencies for chrome
- https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#chrome-doesnt-launch-on-linux

* Set user data directory for puppeteer to be read-write volume in k8s
2024-06-19 11:12:32 +01:00
Kristaps Fabians Geikins 4dea8249d5 tryna cache bust preview-service dockerfile 2024-06-19 10:51:08 +03:00
Iain Sproat aed61adaf3 feat(preview-service): install chromium browser as a dependency at build time not runtime (#2019) 2024-06-18 20:47:48 +01:00
Iain Sproat 8c39ed6623 fix(preview-service): puppeteer requires permissions to read and write chrome directory (#2395) 2024-06-18 17:08:11 +01:00
Kristaps Fabians Geikins f023ebe96e fix(preview-service): hardcode puppeteer cache dir (#2393) 2024-06-18 16:19:35 +01:00
Kristaps Fabians Geikins a41483ae76 fixx (#2392) 2024-06-18 14:05:55 +01:00
Kristaps Fabians Geikins c7fdc6acc2 chore: updating ws everywhere to resolve SNYK-JS-WS-7266574 (#2385)
* chore: updating ws in various ways

* puppeteer upgrade

* updating codegen deps

* workspaces cmd update

* various extra fixes

* minor preview-service troubleshooting improvements

* dockerfile fixes

* hopefully fixing docker build fe2

* try again

* try large again
2024-06-18 13:26:01 +03:00
github-actions[bot] a79680da00 Update image digests (#2203)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-06-18 10:18:46 +01:00
github-actions[bot] 11b62f3824 Update image digests (#2189)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-04-09 10:05:32 +01:00
github-actions[bot] 4947573584 Update image digests (#2172)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-03-28 08:57:01 +00:00
github-actions[bot] bbe48effd0 Update image digests (#2139)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-03-15 16:42:10 +00:00
github-actions[bot] 4418932832 Update image digests (#2040)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-02-23 12:42:29 +00:00
github-actions[bot] 8185683b4a Update image digests (#1966)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-02-09 01:13:48 +00:00
github-actions[bot] 36f749b24a chore(deps): bump image digests (#1939)
* fix(github action): use correct format for author & committer git signing

* Update image digests

Signed-off-by: specklebot <devops@speckle.systems>

---------

Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: specklebot <devops@speckle.systems>
2024-01-05 15:57:25 +00:00
Iain Sproat b396029cf6 chore(Dockerfile): bump images to debian bookworm, pin images by digest, and github action to auto-bump (#1937)
* chore(Dockerfile): pin images by digest this ensures consistent builds with images pinned by SHA
* introduces a GitHub Action will create a PR to update the images when there is a new version, and will pin to that newer version SHA.

* Bump debian to 12 'bookworm'
* Bump pypi libraries
  * except frontend-1, as only debian 11 is currently supported by openresty
* Bump debian packages
2024-01-05 11:51:04 +00:00
Iain Sproat 3db83e50be chore(deps): bump node from 18.18.2 to 18.19.0 (#1921)
* chore(deps): bump node from 18.18.2 to 18.19.0

* Additional dependencies
2023-12-15 11:30:07 +01:00
Iain Sproat 438c6bbf0d chore(deps): bump node from 18.17.1 to 18.18.2 (#1844) 2023-10-31 18:08:25 +00:00
Gergő Jedlicska 42eb66c75c Rework automation results (#1816)
* WIP: rework results

* fix: preview service build dependency version
2023-10-10 21:56:58 +02:00
Iain Sproat 080e8197f9 chore(deps): bump node from 18.17.0 to 18.17.1 (#1771) 2023-08-24 10:55:43 +01:00
Iain Sproat ea941b3b81 chore(deps): bump node to 18.17.0 (#1722) 2023-07-26 12:38:50 +01:00
Iain Sproat ffc3c5186f chore(node): bump to 18.16.1 (#1675) 2023-07-07 16:54:18 +01:00
Kristaps Fabians Geikins 42a49fb635 chore: ensuring react ttypes are always stubbed (#1570) 2023-05-08 14:07:56 +03:00
Iain Sproat 4eab7d9dcd chore(deps): bump node to 18.16.0 (#1564) 2023-05-05 12:43:39 +01:00
Gergő Jedlicska 45149ccb6a fix preview docker deps 2023-05-02 13:24:28 +02:00
Gergő Jedlicska 50ae090d01 fix preview docker deps 2023-05-02 13:10:22 +02:00
Iain Sproat cff0fa8e31 chore(deps): bump node images to 18.15.0 (#1500) 2023-04-05 12:15:26 +01:00
Snyk bot 8895eb2321 fix: packages/preview-service/Dockerfile to reduce vulnerabilities (#1400)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326666
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326668
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326685
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326686
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326688
2023-02-22 09:35:27 +00:00
Iain Sproat a6fba9ebd3 chore(node): bump node version to 18.14.0 (#1365) 2023-02-10 11:44:44 +00:00
Gergő Jedlicska 492afde5f6 gergo/fixBuild (#1277)
* style(server): fix formatting

* fix(preview-service): fix chromium deps in Dockerfile
2022-12-20 12:51:01 +01:00
Iain Sproat 96bed71022 fix(logging): Improves error logging and pretty-prints logs during dev & test (#1255)
* Improves error logging
- use pino error logger correctly by passing in error as first argument

* monitor deployment: Filter logging at INFO level and above
* Use structured logging to create parameters for monitoring results
* Add structured logging to obj fileimport service
* Fileimport service, fix and improve logging
    - use child logger with additional context where possible
    - select appropriate logging level
- fix duplicated context in log statement
* REST endpoints, add context to structured logging and remove same context from message
* Webhook service provides context to bound logger to properly use structured logging
    - Pass bound logger containing context to `makeNetworkRequest`
    - do not log url, as it may contain a secret (like Discord's webhook urls), instead log the webhook Id
     - log error message when network call fails
* upload: make better use of structured logging when recording data
* pino-pretty when in dev or test mode
    - pino-pretty configured to send to stderr
* LOG_PRETTY env var
* Silence structured logging during testing
     - can not rely on determining the port number by reading from stdout/stderr
     - instead we determine which port is free, then create our server on that port
     - we then poll that port until the server is ready before commencing tests
* Allow puppeteer to install chromium
* Do not need to install chromium separately
2022-12-13 09:18:28 +00:00
Iain Sproat d09bce7267 feat(docker images): Distroless (#935)
* Moves speckle-server, webhook-service, fileimport-service, monitoring-deployment, and test-deployment images to Distroless.

Partially addresses https://github.com/specklesystems/speckle-server/issues/883

* preview-service uses similar image for building and production stages
* explicitly include chromium-common dependency to prevent error in preview service
* Bump chromium packages due to package versions not being found
* Handle machine-id in distroless
    - distroless has no shell, so node-machine-id will result in an error
    - this commit introduces error handling and defaults to a uuid v4 in the case of an error
* Update binary location for readiness and liveness checks to match the binary location in Distroless
* Allow node binary path to be set as environment variable in fileimport service
2022-12-07 12:07:42 +00:00
Iain Sproat ee50b32b59 chore(node): upgrades to node 18 (#1189)
* chore(node): upgrades to node 18

Node 16 was out of support (but not security upgrades), so bumping to next stable version.

https://github.com/specklesystems/speckle-server/issues/1187

* Update server liveness and readiness probes for node 18
* Bump web-ifc to 0.0.36
* Apply `--no-experimental-fetch` flag to fileimport-service to prevent issues in web-ifc (via emscripten) with node 18
2022-12-06 12:57:48 +00:00
Iain Sproat 3d4b3b6979 Pin python requirements and bump to latest versions (#1140)
* Pin python requirements and bump to latest versions
* fix(fileimports): add exception printing to file imports

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2022-11-01 11:17:03 +00:00
Iain Sproat 564b5dc5fb Bump docker images (#1148) 2022-10-25 16:12:24 +01:00
Iain Sproat 8aa7f51d27 Revert "chore(dockerfile): bump Dockerfile base image versions (#974)" (#1146)
This reverts commit 6d6264c779.
2022-10-25 15:43:29 +01:00
Iain Sproat 6d6264c779 chore(dockerfile): bump Dockerfile base image versions (#974) 2022-10-25 14:35:43 +01:00
Kristaps Fabians Geikins 5f48ae8086 feat(server): optimized command for importing commits from other servers (#1113) 2022-10-17 10:32:01 +03:00
Iain Sproat 44bd5919f8 Revert "perf(Docker images): production images are based on distroless (#899)" (#934)
This reverts commit 7fe41b1fb2.
2022-08-16 16:42:59 +01:00
Iain Sproat 7fe41b1fb2 perf(Docker images): production images are based on distroless (#899)
- perf(server, webhook-service): production images are based on distroless

Reduces image file size by >40% for images which can use distroless base image.  As
well as improving boot-up & restart time (via smaller download & load size), Distroless reduces the
attack surface area by removing almost all binaries & packages (e.g. shell, chown) that are not
necessary to run node.

- ensures distroless node images run tini
- removes fonts-dejavu-core and fontconfig from speckle-server
- Remove man and doc files if they exist
- args hoisted to top of Dockerfile and consolidated
- env vars consolidated to prevent additional layers

address https://github.com/specklesystems/speckle-server/issues/883
2022-08-16 16:17:07 +01:00
Iain Sproat 1c5964fc41 Add Hadolint to pre-commit (#848)
* Adds hadolint as pre-commit step
* Addresses all hadolint comments
  * Use noninteractive apt-get frontend and clean after install
  * dockerfile RUN statements are consolidated to prevent additional layers
  * installed packages have pinned versions
* build(circleci): use speckle pre-commit runner with built-in hadolint
* Integrate pre-commit with husky bash script for git pre-commit hooks
  * catches errors in bash
  * if pre-commit is installed, it is run
  * if optional additional binaries are installed, further pre-commit steps are run
* Update README with revised developer instructions
* Adds a pre-commit yarn script
2022-08-09 13:47:02 +01:00
Gergő Jedlicska 1d8ffac57a update knex dependency chain (#776)
* chore(root): update packages

* chore(server + preview service): add pg-query-stream peer dependency

* build(dockerfiles): unify and update docker base layer to latest node lts
2022-06-01 10:25:09 +02:00
Gergő Jedlicska 1b3f653eca build(preview-service): remove ghost dependencies from preview service (#770) 2022-05-25 14:24:03 +02:00
Gergő Jedlicska 638969cd01 gergo/yarn (#753)
* yarn first go

* fix frontend build cache loader

* yarn workspaces built server Docker

* build(yarn): add workspaces plugin config

* chore(package defs): clean package*.json -s

* chore(gitignore): ignore yarn error log

* build(yarn): update yarn lock

* build(preview-service webpack): add extra resolved path to preview service webpack config

because of yarn package hoisting, there are no package level node_modules folder anymore.

* build(docker): update dockerignore with yarn specific configs

* build(docker): update Dockerfiles for yarn workspaces utilization

* ci(circleci): update server test job to yarn

* ci(circle): disable cache restore

* ci(circleci): trying the node orb yarn-run

* ci(circleci): yarn-run again

* ci(circleci): disable node orb

* ci(circleci): change base node image for tests

* ci(circleci): add yarn cache

* ci(circleci): remove node install step

* ci(circleci): add server specific cache archives

* ci(circleci): test build and publish

* ci(circleci): change npm auth method to suit yarn

* ci(circleci): trying new builder image

* ci(circleci): another base image, maybe this works

* ci(circleci): force a specific docker engine version

* ci(circleci): add yarn version plugin and its changes

* ci(circleci): cleanup and remove temp branch config

* chore(package defs): moving from npm run to yarn

* explicitly specifying webpack4 as a frontend dep

* chore(package defs): replace npm with yarn everywhere

* docs(root readme): update with some yarn specific docs

* chore(root workspace): update dev scripts and package lock

* ci(circleci): enable package publish step with yarn

Co-authored-by: Fabians <fabis94@live.com>
2022-05-19 19:53:07 +02:00
Gergő Jedlicska 45f47fed60 ci(frontend, preview service): rework dockerfiles to use clean packaged local dependencies 2022-04-09 16:08:02 +02:00
Fabians 4a5d2515c6 updating dockerfiles 2022-04-08 12:56:48 +03:00
Cristian Balas f3e74e0e64 Preview service fixes (#530) 2022-01-19 21:03:39 +02:00
Cristian Balas 019b7ac495 Service health (#516)
* health checks, sigterm handling for all services
2022-01-12 15:18:32 +02:00
cristi8 a4facd09ba fixed previewservice docker build 2021-12-07 15:10:50 +02:00
Gergő Jedlicska f6409f1dfd build(node version): upgrade to current node LTS version 2021-11-15 12:52:34 +01:00