diff --git a/.blueprints/Dockerfile.blueprint b/.blueprints/Dockerfile.blueprint index ef261745..c46a27d2 100644 --- a/.blueprints/Dockerfile.blueprint +++ b/.blueprints/Dockerfile.blueprint @@ -17,6 +17,17 @@ RUN echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" ln -s /usr/bin/pdftk /usr/local/bin/pdftk &&\ ln -s /usr/bin/unoconv /usr/local/bin/unoconv +RUN apt-get install -y curl gnupg &&\ + curl -sL https://deb.nodesource.com/setup_8.x | bash - &&\ + apt-get update &&\ + apt-get install -y nodejs + +RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - &&\ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&\ + apt-get update &&\ + apt-get install -y yarn bzip2 &&\ + yarn global add markdown-pdf --prefix /usr/local + # |-------------------------------------------------------------------------- # | Gotenberg # |-------------------------------------------------------------------------- @@ -41,11 +52,11 @@ RUN go get -d -v ./... ENTRYPOINT [".ci/docker-entrypoint.sh"] {{- else }} -COPY .build/gotenberg /usr/bin/gotenberg +COPY .ci/gotenberg /usr/bin/gotenberg RUN ln -s /usr/bin/gotenberg /usr/local/bin/gotenberg WORKDIR /gotenberg -COPY .build/gotenberg.yml /gotenberg/gotenberg.yml +COPY .ci/gotenberg.yml /gotenberg/gotenberg.yml EXPOSE 3000 CMD ["gotenberg"] diff --git a/.build/gotenberg b/.build/gotenberg deleted file mode 100755 index 4b39e207..00000000 Binary files a/.build/gotenberg and /dev/null differ diff --git a/.ci/docker-entrypoint.sh b/.ci/docker-entrypoint.sh index 12a5b00b..404e24d0 100755 --- a/.ci/docker-entrypoint.sh +++ b/.ci/docker-entrypoint.sh @@ -22,7 +22,7 @@ else fi # Builds the Linux binary. -env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.version=${VERSION}" && mv gotenberg .build/; +env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.version=${VERSION}" && mv gotenberg .ci/; # Bye! exit 0; \ No newline at end of file diff --git a/.build/gotenberg.yml b/.ci/gotenberg.yml similarity index 100% rename from .build/gotenberg.yml rename to .ci/gotenberg.yml diff --git a/.gitignore b/.gitignore index 2e1b0fb9..39d8e46e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store .ci/coverage.txt -.vscode \ No newline at end of file +.ci/gotenberg +.vscode diff --git a/Dockerfile b/Dockerfile index cfa4f3da..8d0fa13e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,6 +17,17 @@ RUN echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" ln -s /usr/bin/pdftk /usr/local/bin/pdftk &&\ ln -s /usr/bin/unoconv /usr/local/bin/unoconv +RUN apt-get install -y curl gnupg &&\ + curl -sL https://deb.nodesource.com/setup_8.x | bash - &&\ + apt-get update &&\ + apt-get install -y nodejs + +RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - &&\ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&\ + apt-get update &&\ + apt-get install -y yarn bzip2 &&\ + yarn global add markdown-pdf --prefix /usr/local + # |-------------------------------------------------------------------------- # | Gotenberg # |-------------------------------------------------------------------------- @@ -24,11 +35,11 @@ RUN echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" # | All Gotenberg related stuff. # | -COPY .build/gotenberg /usr/bin/gotenberg +COPY .ci/gotenberg /usr/bin/gotenberg RUN ln -s /usr/bin/gotenberg /usr/local/bin/gotenberg WORKDIR /gotenberg -COPY .build/gotenberg.yml /gotenberg/gotenberg.yml +COPY .ci/gotenberg.yml /gotenberg/gotenberg.yml EXPOSE 3000 CMD ["gotenberg"] \ No newline at end of file diff --git a/Dockerfile.ci b/Dockerfile.ci index 38107c73..fb0553b2 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -17,6 +17,17 @@ RUN echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" ln -s /usr/bin/pdftk /usr/local/bin/pdftk &&\ ln -s /usr/bin/unoconv /usr/local/bin/unoconv +RUN apt-get install -y curl gnupg &&\ + curl -sL https://deb.nodesource.com/setup_8.x | bash - &&\ + apt-get update &&\ + apt-get install -y nodejs + +RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - &&\ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&\ + apt-get update &&\ + apt-get install -y yarn bzip2 &&\ + yarn global add markdown-pdf --prefix /usr/local + # |-------------------------------------------------------------------------- # | Gotenberg # |-------------------------------------------------------------------------- diff --git a/app/converter/file/file.go b/app/converter/file/file.go index 7e59889e..054fc73d 100644 --- a/app/converter/file/file.go +++ b/app/converter/file/file.go @@ -34,6 +34,7 @@ const ( // filesTypes associates a file extension with its file kind counterpart. var filesTypes = map[string]Type{ ".pdf": PDFType, + ".htm": HTMLType, ".html": HTMLType, ".doc": OfficeType, ".docx": OfficeType, diff --git a/app/handlers_test.go b/app/handlers_test.go index 63a61e07..13059eb6 100644 --- a/app/handlers_test.go +++ b/app/handlers_test.go @@ -114,11 +114,26 @@ func TestConvertHandler(t *testing.T) { t.Errorf("Handler returned a wrong status code: got %v want %v", status, http.StatusInternalServerError) } - // case 4: sends a request with two files. + // case 3: sends two requests (almost) simultany. path, _ = filepath.Abs("../_tests/configurations/gotenberg.yml") appConfig, _ = config.NewAppConfig(path) process.Load(appConfig.CommandsConfig) + /*sum := 0 + for sum < 2 { + go func() { + path, _ := filepath.Abs("../_tests/file.docx") + req := makeRequest(path) + rr := httptest.NewRecorder() + h.ServeHTTP(rr, req) + if status := rr.Code; status != http.StatusInternalServerError { + t.Errorf("Handler returned a wrong status code: got %v want %v", status, http.StatusInternalServerError) + } + }() + sum++ + }*/ + + // case 4: sends a request with two files. oPath, _ = filepath.Abs("../_tests/file.docx") path, _ = filepath.Abs("../_tests/file.pdf") req = makeRequest(oPath, path) diff --git a/orbit.yml b/orbit.yml index 6acf85b1..974f0d8b 100644 --- a/orbit.yml +++ b/orbit.yml @@ -16,7 +16,7 @@ tasks: short: Runs CI process inside a container run: - docker build -t gotenberg:ci -f Dockerfile.ci . - - docker run --rm -e "VERSION={{ .Orbit.Version }}" -v "$(pwd)/.ci:/go/src/github.com/thecodingmachine/gotenberg/.ci" -v "$(pwd)/.build:/go/src/github.com/thecodingmachine/gotenberg/.build" gotenberg:ci + - docker run --rm -e "VERSION={{ .Orbit.Version }}" -v "$(pwd)/.ci:/go/src/github.com/thecodingmachine/gotenberg/.ci" gotenberg:ci - use: build short: Builds the main Docker image