diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa18d790d1a2511807d02431142c7b10bc07a231..a11cc565d76a2abf1a5f7d245f6a9fae896744f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,18 +2,19 @@ image: docker:20.10.9 variables: DOCKER_TLS_CERTDIR: "/certs" - IMAGE_VER: 2.6.0 services: - docker:20.10.9-dind before_script: + - apk add --no-cache yq - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY build: stage: build script: + - VERSION=`yq '.info.version' openapi.yaml` - docker pull $CI_REGISTRY_IMAGE:latest || true - - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$IMAGE_VER --tag $CI_REGISTRY_IMAGE:latest . - - docker push $CI_REGISTRY_IMAGE:$IMAGE_VER + - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$VERSION --tag $CI_REGISTRY_IMAGE:latest . + - docker push $CI_REGISTRY_IMAGE:$VERSION - docker push $CI_REGISTRY_IMAGE:latest diff --git a/Dockerfile b/Dockerfile index 5b65619b2a91bc65eb87b94060a429e93580e75d..c8dd4cc45dfc8c482218aff9c9bfbc091bcebbc2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,8 @@ RUN cpanm \ Mojo::Pg \ Mojo::Redis \ Mojo::JWT \ - Mojolicious::Plugin::OpenAPI + Mojolicious::Plugin::OpenAPI \ + Mojolicious::Plugin::SwaggerUI ADD . /opt/cf WORKDIR /opt/cf diff --git a/lib/CF.pm b/lib/CF.pm index 1fd445f629639f816a0ee557988856cdab6f88e3..fbcce86d70f2e7de7cb00f41c7a47f16003677b1 100644 --- a/lib/CF.pm +++ b/lib/CF.pm @@ -102,13 +102,19 @@ sub startup { } }); + $self->plugin( SwaggerUI => { + url => "/api", + title => "CF Online", + }); + + $self->defaults( openapi_cors_allowed_origins => ['*'] ); # Router my $r = $self->routes; - $r->get('/')->to(cb => sub { shift->redirect_to('/api.html');}); + $r->get('/')->to(cb => sub { shift->redirect_to('/swagger-ui');}); $r->websocket('/ws')->to('Websockets#main'); } diff --git a/openapi.yaml b/openapi.yaml index abc2f274891bbbfe4aacb5fdb34b42ed94b1a355..f32c79eb130fd35581379fd4cd8d968ad057cb80 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: - version: "2.0" + version: "2.6.1" title: CF Online description: CF Online license: