From 956ffddf84fb166ba66face8c5ce6951e0c26b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Andrei?= Date: Thu, 16 Mar 2023 14:14:32 -0300 Subject: [PATCH 1/3] WIP: New deployment format --- .github/workflows/backend.yml | 95 ++-- .github/workflows/frontend.yml | 120 +++--- .github/workflows/manual-deploy.yml | 50 +++ Makefile | 18 +- backend/Dockerfile | 2 +- backend/Makefile | 6 +- devops/stacks/docker-compose-latest.yml | 6 +- devops/stacks/plone.org.br.yml | 44 +- frontend/Makefile | 11 +- frontend/cypress/compose.yml | 4 +- frontend/package.json | 2 +- frontend/yarn.lock | 549 +++++++++++++++++------- 12 files changed, 624 insertions(+), 283 deletions(-) create mode 100644 .github/workflows/manual-deploy.yml diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 86e871a..231843f 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -1,4 +1,5 @@ -name: Backend CI +name: Backend testing +run-name: Backend testing by @${{ github.actor }} on: push: @@ -6,8 +7,33 @@ on: - "backend/**" - ".github/workflows/backend.yml" +env: + PYTHON_VERSION: 3.11 + PLONE_VERSION: 6.0.2 + IMAGE_NAME_SUFFIX: backend + +defaults: + run: + working-directory: ./backend + jobs: + meta: + runs-on: ubuntu-latest + outputs: + ENVIRONMENT: ${{ steps.vars.outputs.ENVIRONMENT }} + STACK_NAME: ${{ steps.vars.outputs.STACK_NAME }} + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set Env Vars + id: vars + run: | + ENVIRONMENT=${{ vars.LIVE_ENV }} + echo "ENVIRONMENT=${ENVIRONMENT}" >> $GITHUB_OUTPUT + echo "STACK_NAME=${ENVIRONMENT//./-}" >> $GITHUB_OUTPUT + black: runs-on: ubuntu-latest steps: @@ -58,31 +84,20 @@ jobs: tests: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python: - - 3.11 - plone: - - "6.0.0.2" - - defaults: - run: - working-directory: ./backend steps: - uses: actions/checkout@v3 - - name: Setup Plone ${{ matrix.plone }} with Python ${{ matrix.python }} + - name: Setup Plone ${{ env.PLONE_VERSION }} with Python ${{ env.PYTHON_VERSION }} uses: plone/setup-plone@v2.0.0 with: - python-version: ${{ matrix.python }} - plone-version: ${{ matrix.plone }} + python-version: ${{ env.PYTHON_VERSION }} + plone-version: ${{ env.PLONE_VERSION }} - name: Install package run: | - pip install "plone.app.testing" -c https://dist.plone.org/release/${{ matrix.plone }}/constraints.txt + pip install "plone.app.testing" -c https://dist.plone.org/release/${{ env.PLONE_VERSION }}/constraints.txt pip install -e "src/ploneorgbr.core[test]" - name: Run tests @@ -91,7 +106,13 @@ jobs: release: runs-on: ubuntu-latest - needs: [black, flake8, isort, zpretty, tests] + needs: + - meta + - black + - flake8 + - isort + - zpretty + - tests steps: @@ -103,25 +124,23 @@ jobs: uses: docker/metadata-action@v4 with: images: | - ploneorgbr/site-backend - labels: | - org.label-schema.docker.cmd=docker run -d -p 8080:8080 ploneorgbr/site-backend:latest + ${{ vars.IMAGE_NAME_PREFIX }}-${{ env.IMAGE_NAME_SUFFIX }} + flavor: | + latest=false tags: | type=ref,event=branch type=sha - type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + type=raw,value=latest,enable={{is_default_branch}} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to DockerHub + - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v3 @@ -129,31 +148,37 @@ jobs: platforms: linux/amd64 context: backend file: backend/Dockerfile + build-args: | + PLONE_VERSION=${{ env.PLONE_VERSION }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} deploy: if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest needs: - release - runs-on: ubuntu-latest - environment: plone.org.br + - meta + environment: + name: ${{ needs.meta.outputs.ENVIRONMENT }} + url: ${{ needs.meta.outputs.ENVIRONMENT }} steps: - - name: Checkout uses: actions/checkout@v3 - - name: Deploy to plone.org.br + - name: Deploy to cluster uses: kitconcept/docker-stack-deploy@v1.2.0 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: "ghcr.io" + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} remote_host: ${{ secrets.DEPLOY_HOST }} remote_port: ${{ secrets.DEPLOY_PORT }} remote_user: ${{ secrets.DEPLOY_USER }} remote_private_key: ${{ secrets.DEPLOY_SSH }} - stack_file: "devops/stacks/plone.org.br.yml" - stack_name: "plonebr" + stack_file: devops/stacks/${{ needs.meta.outputs.ENVIRONMENT }}.yml + stack_name: ${{ needs.meta.outputs.STACK_NAME }} + stack_param: ${{ github.ref_name }} env_file: ${{ secrets.ENV_FILE }} deploy_timeout: 480 diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index f471e4b..bd66ddb 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -1,78 +1,79 @@ -name: Frontend CI - +name: Frontend testing +run-name: Frontend testing by @${{ github.actor }} on: + workflow_dispatch: push: paths: - "frontend/**" - - ".github/workflows/frontend.yml" + - ".github/workflows/frontend-testing.yml" env: - node-version: 16.x + NODE_VERSION: "16.x" + VOLTO_VERSION: "16.16.0" + IMAGE_NAME_SUFFIX: frontend jobs: - eslint: + meta: runs-on: ubuntu-latest - defaults: - run: - working-directory: ./frontend + outputs: + ENVIRONMENT: ${{ steps.vars.outputs.ENVIRONMENT }} + STACK_NAME: ${{ steps.vars.outputs.STACK_NAME }} steps: - - name: Checkout codebase + - name: Checkout uses: actions/checkout@v3 - - name: Use Node.js ${{ env.node-version }} + - name: Set Env Vars + id: vars + run: | + ENVIRONMENT=${{ vars.STG_ENV }} + echo "ENVIRONMENT=${ENVIRONMENT}" >> $GITHUB_OUTPUT + echo "STACK_NAME=${ENVIRONMENT//./-}" >> $GITHUB_OUTPUT + + codeanalysis: + runs-on: ubuntu-latest + + steps: + - name: Main checkout + uses: actions/checkout@v3 + + - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v3 with: node-version: ${{ env.node-version }} cache: 'yarn' cache-dependency-path: 'frontend/yarn.lock' - - name: Install packages - run: make install - - - name: Lint - run: yarn run lint:ci - - - name: i18n - run: yarn run i18n:ci + - name: Linting + run: | + make install-frontend + make lint-frontend - prettier: + unit: runs-on: ubuntu-latest - defaults: - run: - working-directory: ./frontend - steps: - - name: Checkout codebase - uses: actions/checkout@v3 - - name: Run Prettier - run: npx prettier@2.0.5 --single-quote --check 'src/**/*.{js,jsx,ts,tsx,css,scss}' --config=package.json - - tests: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./frontend steps: - name: Checkout codebase uses: actions/checkout@v3 - - name: Use Node.js ${{ env.node-version }} + - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v3 with: node-version: ${{ env.node-version }} cache: 'yarn' cache-dependency-path: 'frontend/yarn.lock' - - name: Install packages - run: make install - - name: Test - run: yarn run test:ci + run: | + make install-frontend + make test-frontend-ci release: runs-on: ubuntu-latest - needs: [eslint, prettier, tests] + needs: + - meta + - codeanalysis + - unit steps: @@ -84,13 +85,13 @@ jobs: uses: docker/metadata-action@v4 with: images: | - ploneorgbr/site-frontend - labels: | - org.label-schema.docker.cmd=docker run -d -p 3000:3000 ploneorgbr/site-frontend:latest + ${{ vars.IMAGE_NAME_PREFIX }}-${{ env.IMAGE_NAME_SUFFIX }} + flavor: | + latest=false tags: | type=ref,event=branch type=sha - type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + type=raw,value=latest,enable={{is_default_branch}} - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -98,43 +99,50 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to DockerHub + - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v3 with: platforms: linux/amd64 context: frontend/ - file: frontend/Dockerfile + file: frontend/dockerfiles/Dockerfile + build-args: | + VOLTO_VERSION=${{ env.VOLTO_VERSION }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + labels: $${{ steps.meta.outputs.labels }} deploy: if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest needs: - release - runs-on: ubuntu-latest - environment: plone.org.br + - meta + environment: + name: ${{ needs.meta.outputs.ENVIRONMENT }} + url: ${{ needs.meta.outputs.ENVIRONMENT }} steps: - - name: Checkout uses: actions/checkout@v3 - - name: Deploy to plone.org.br + - name: Deploy to cluster uses: kitconcept/docker-stack-deploy@v1.2.0 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: "ghcr.io" + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} remote_host: ${{ secrets.DEPLOY_HOST }} remote_port: ${{ secrets.DEPLOY_PORT }} remote_user: ${{ secrets.DEPLOY_USER }} remote_private_key: ${{ secrets.DEPLOY_SSH }} - stack_file: "devops/stacks/plone.org.br.yml" - stack_name: "plonebr" + stack_file: devops/stacks/${{ needs.meta.outputs.ENVIRONMENT }}.yml + stack_name: ${{ needs.meta.outputs.STACK_NAME }} + stack_param: ${{ github.ref_name }} env_file: ${{ secrets.ENV_FILE }} deploy_timeout: 480 diff --git a/.github/workflows/manual-deploy.yml b/.github/workflows/manual-deploy.yml new file mode 100644 index 0000000..9376482 --- /dev/null +++ b/.github/workflows/manual-deploy.yml @@ -0,0 +1,50 @@ +name: Manual Deploy + +on: + workflow_dispatch: + +jobs: + + meta: + runs-on: ubuntu-latest + outputs: + ENVIRONMENT: ${{ steps.vars.outputs.ENVIRONMENT }} + STACK_NAME: ${{ steps.vars.outputs.STACK_NAME }} + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set Env Vars + id: vars + run: | + ENVIRONMENT=${{ vars.LIVE_ENV }} + echo "ENVIRONMENT=${ENVIRONMENT}" >> $GITHUB_OUTPUT + echo "STACK_NAME=${ENVIRONMENT//./-}" >> $GITHUB_OUTPUT + + deploy: + if: ${{ github.event_name == 'workflow_dispatch' }} + runs-on: ubuntu-latest + needs: + - meta + environment: + name: ${{ needs.meta.outputs.ENVIRONMENT }} + url: ${{ needs.meta.outputs.ENVIRONMENT }} + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Deploy to cluster + uses: kitconcept/docker-stack-deploy@v1.2.0 + with: + registry: "ghcr.io" + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + remote_host: ${{ secrets.DEPLOY_HOST }} + remote_port: ${{ secrets.DEPLOY_PORT }} + remote_user: ${{ secrets.DEPLOY_USER }} + remote_private_key: ${{ secrets.DEPLOY_SSH }} + stack_file: devops/stacks/${{ needs.meta.outputs.ENVIRONMENT }}.yml + stack_name: ${{ needs.meta.outputs.STACK_NAME }} + stack_param: ${{ github.ref_name }} + env_file: ${{ secrets.ENV_FILE }} + deploy_timeout: 480 diff --git a/Makefile b/Makefile index 26388d5..0d3f4e1 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,11 @@ format: ## Format codebase $(MAKE) -C "./backend/" format $(MAKE) -C "./frontend/" format +.PHONY: lint-frontend +lint-frontend: ## Lint frontend code + @echo "Lint codebase" + $(MAKE) -C "./frontend/" lint + .PHONY: i18n i18n: ## Update locales @echo "Update locales" @@ -94,6 +99,11 @@ test: ## Test codebase $(MAKE) -C "./backend/" test $(MAKE) -C "./frontend/" test +.PHONY: test-frontend-ci +test-frontend-ci: ## Test codebase + @echo "Test codebase" + $(MAKE) -C "./frontend/" test-ci + .PHONY: build-images build-images: ## Build docker images @@ -116,16 +126,16 @@ stop-stack: ## Stop local stack .PHONY: build-acceptance-servers build-acceptance-servers: ## Build Acceptance Servers @echo "Build acceptance backend" - @docker build backend -t ploneorgbr/site-backend:acceptance -f backend/Dockerfile.acceptance + @docker build backend -t ghcr.io/plonegovbr/ploneorgbr-backend:acceptance -f backend/Dockerfile.acceptance @echo "Build acceptance frontend" - @docker build frontend -t ploneorgbr/site-frontend:acceptance -f frontend/Dockerfile + @docker build frontend -t ghcr.io/plonegovbr/ploneorgbr-frontend:acceptance -f frontend/Dockerfile .PHONY: start-acceptance-servers start-acceptance-servers: build-acceptance-servers ## Start Acceptance Servers @echo "Start acceptance backend" - @docker run --rm -p 55001:55001 --name site-backend-acceptance -d ploneorgbr/site-backend:acceptance + @docker run --rm -p 55001:55001 --name site-backend-acceptance -d ghcr.io/plonegovbr/ploneorgbr-backend:acceptance @echo "Start acceptance frontend" - @docker run --rm -p 3000:3000 --name site-frontend-acceptance --link site-backend-acceptance:backend -e RAZZLE_API_PATH=http://localhost:55001/plone -e RAZZLE_INTERNAL_API_PATH=http://backend:55001/plone -d ploneorgbr/site-frontend:acceptance + @docker run --rm -p 3000:3000 --name site-frontend-acceptance --link site-backend-acceptance:backend -e RAZZLE_API_PATH=http://localhost:55001/plone -e RAZZLE_INTERNAL_API_PATH=http://backend:55001/plone -d ghcr.io/plonegovbr/ploneorgbr-frontend:acceptance .PHONY: stop-acceptance-servers stop-acceptance-servers: ## Stop Acceptance Servers diff --git a/backend/Dockerfile b/backend/Dockerfile index 2a62061..36167f9 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -ARG PLONE_VERSION=6.0 +ARG PLONE_VERSION FROM plone/plone-backend:${PLONE_VERSION} LABEL maintainer="PloneGov-BR " \ diff --git a/backend/Makefile b/backend/Makefile index 05cc690..8140440 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -15,7 +15,7 @@ GREEN=`tput setaf 2` RESET=`tput sgr0` YELLOW=`tput setaf 3` -PLONE_VERSION=6.0.0.2 +PLONE_VERSION=6.0.2 ifndef LOG_LEVEL LOG_LEVEL=INFO @@ -26,13 +26,13 @@ USER_INFO=$$(id -u ${CURRENT_USER}):$$(getent group ${CURRENT_USER}|cut -d: -f3) BACKEND_FOLDER=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -CODE_QUALITY_VERSION=2.0.2 +CODE_QUALITY_VERSION=2 LINT=docker run -e LOG_LEVEL="${LOG_LEVEL}" --rm -v "${BACKEND_FOLDER}":/github/workspace plone/code-quality:${CODE_QUALITY_VERSION} check FORMAT=docker run --user="${USER_INFO}" -e LOG_LEVEL="${LOG_LEVEL}" --rm -v "${BACKEND_FOLDER}":/github/workspace plone/code-quality:${CODE_QUALITY_VERSION} format PACKAGE_NAME=ploneorgbr.core PACKAGE_PATH=src/ploneorgbr.core/src/ -IMAGE_NAME=ploneorgbr/site-backend +IMAGE_NAME=ghcr.io/plonegovbr/ploneorgbr-backend IMAGE_TAG=latest CHECK_PATH=src/ploneorgbr.core/setup.py scripts/ $(PACKAGE_PATH) diff --git a/devops/stacks/docker-compose-latest.yml b/devops/stacks/docker-compose-latest.yml index d023951..212dcc2 100644 --- a/devops/stacks/docker-compose-latest.yml +++ b/devops/stacks/docker-compose-latest.yml @@ -12,7 +12,7 @@ services: - "80:80" frontend: - image: ploneorgbr/site-frontend:latest + image: ghcr.io/plonegovbr/ploneorgbr-frontend:latest environment: RAZZLE_INTERNAL_API_PATH: http://backend:8080/Plone ports: @@ -21,7 +21,7 @@ services: - backend backend: - image: ploneorgbr/site-backend:latest + image: ghcr.io/plonegovbr/ploneorgbr-backend:latest environment: SITE: Plone ADDITIONAL_PROFILES: "ploneorgbr.core:default,ploneorgbr.core:initial" @@ -39,4 +39,4 @@ services: - data:/var/lib/postgresql/data volumes: - data: {} \ No newline at end of file + data: {} diff --git a/devops/stacks/plone.org.br.yml b/devops/stacks/plone.org.br.yml index 5a259b1..8c6c24b 100644 --- a/devops/stacks/plone.org.br.yml +++ b/devops/stacks/plone.org.br.yml @@ -3,14 +3,14 @@ version: '3.3' services: frontend: - image: ploneorgbr/site-frontend:latest + image: ghcr.io/plonegovbr/ploneorgbr-frontend:${STACK_PARAM:-latest} environment: - RAZZLE_INTERNAL_API_PATH: http://backend:8080/Plone + RAZZLE_INTERNAL_API_PATH: http://plone-org-br_backend:8080/Plone depends_on: - backend networks: - public - - plonebr + - nw-plone-org-br deploy: replicas: 2 placement: @@ -21,22 +21,22 @@ services: - traefik.docker.network=public - traefik.constraint-label=public # SERVICE - - traefik.http.services.plonebr-frontend.loadbalancer.server.port=3000 - # HOSTS: Main - - traefik.http.routers.plonebr-frontend.rule=Host(`plone.org.br`) - - traefik.http.routers.plonebr-frontend.entrypoints=https - - traefik.http.routers.plonebr-frontend.tls=true - - traefik.http.routers.plonebr-frontend.tls.certresolver=le - - traefik.http.routers.plonebr-frontend.service=plonebr-frontend - - traefik.http.routers.plonebr-frontend.middlewares=gzip + - traefik.http.services.svc-ploneorgbr-live-frontend.loadbalancer.server.port=3000 + # Router: Main + - traefik.http.routers.rt-ploneorgbr-live-frontend.rule=Host(`plone.org.br`) + - traefik.http.routers.rt-ploneorgbr-live-frontend.entrypoints=https + - traefik.http.routers.rt-ploneorgbr-live-frontend.tls=true + - traefik.http.routers.rt-ploneorgbr-live-frontend.tls.certresolver=le + - traefik.http.routers.rt-ploneorgbr-live-frontend.service=svc-ploneorgbr-live-frontend + - traefik.http.routers.rt-ploneorgbr-live-frontend.middlewares=gzip backend: - image: ploneorgbr/site-backend:latest + image: ghcr.io/plonegovbr/ploneorgbr-backend:${STACK_PARAM:-latest} environment: RELSTORAGE_DSN: "dbname='${DB_NAME:-plone}' user='${DB_USER:-plone}' host='${DB_HOST:-db}' password='${DB_PASSWORD:-plone}'" networks: - public - - plonebr + - nw-plone-org-br deploy: replicas: 2 placement: @@ -47,20 +47,20 @@ services: - traefik.docker.network=public - traefik.constraint-label=public # Service - - traefik.http.services.plonebr-backend.loadbalancer.server.port=8080 + - traefik.http.services.svc-ploneorgbr-live-backend.loadbalancer.server.port=8080 # Middlewares - - "traefik.http.middlewares.plonebr-vhm.replacepathregex.regex=^/\\+\\+api\\+\\+($$|/.*)" - - "traefik.http.middlewares.plonebr-vhm.replacepathregex.replacement=/VirtualHostBase/https/plone.org.br/Plone/++api++/VirtualHostRoot/$$1" + - "traefik.http.middlewares.mw-ploneorgbr-live-vhm-api.replacepathregex.regex=^/\\+\\+api\\+\\+($$|/.*)" + - "traefik.http.middlewares.mw-ploneorgbr-live-vhm-api.replacepathregex.replacement=/VirtualHostBase/https/plone.org.br/Plone/++api++/VirtualHostRoot/$$1" # Router - - traefik.http.routers.plonebr-backend.rule=Host(`plone.org.br`) && PathPrefix(`/++api++`) - - traefik.http.routers.plonebr-backend.entrypoints=https - - traefik.http.routers.plonebr-backend.tls=true - - traefik.http.routers.plonebr-backend.service=plonebr-backend - - traefik.http.routers.plonebr-backend.middlewares=gzip,plonebr-vhm + - traefik.http.routers.rt-ploneorgbr-live-backend.rule=Host(`plone.org.br`) && PathPrefix(`/++api++`) + - traefik.http.routers.rt-ploneorgbr-live-backend.entrypoints=https + - traefik.http.routers.rt-ploneorgbr-live-backend.tls=true + - traefik.http.routers.rt-ploneorgbr-live-backend.service=svc-ploneorgbr-live-backend + - traefik.http.routers.rt-ploneorgbr-live-backend.middlewares=gzip,mw-ploneorgbr-live-vhm-api networks: public: external: true driver: overlay - plonebr: + nw-plone-org-br: driver: overlay diff --git a/frontend/Makefile b/frontend/Makefile index ea4d6b9..9b74731 100644 --- a/frontend/Makefile +++ b/frontend/Makefile @@ -7,7 +7,7 @@ SHELL:=bash .DELETE_ON_ERROR: MAKEFLAGS+=--warn-undefined-variables MAKEFLAGS+=--no-builtin-rules -IMAGE_NAME=ploneorgbr/site-frontend +IMAGE_NAME=ghcr.io/plonegovbr/ploneorgbr-frontend IMAGE_TAG=latest NODEBIN = ./node_modules/.bin @@ -53,6 +53,11 @@ format-lint: ## Format Code with Lint .PHONY: format format: format-prettier format-stylelint format-lint ## Format the codebase according to our standards +.PHONY: lint +lint: ## Lint codebase + yarn lint + yarn prettier + .PHONY: preinstall preinstall: if [ -f $$(pwd)/mrs.developer.json ]; then if [ -f $$(pwd)/node_modules/.bin/missdev ]; then yarn develop; else yarn develop:npx; fi; fi @@ -71,6 +76,10 @@ i18n-ci: ## Check if i18n is not synced .PHONY: test test: ## Run tests + yarn run test + +.PHONY: test-ci +test-ci: ## Run tests yarn run test:ci .PHONY: build-image diff --git a/frontend/cypress/compose.yml b/frontend/cypress/compose.yml index 0c3f344..a85309a 100644 --- a/frontend/cypress/compose.yml +++ b/frontend/cypress/compose.yml @@ -2,7 +2,7 @@ version: "3" services: frontend: - image: ploneorgbr/site-frontend:acceptance + image: ghcr.io/plonegovbr/ploneorgbr-frontend:acceptance environment: RAZZLE_API_PATH: http://localhost:55001/plone RAZZLE_INTERNAL_API_PATH: http://backend:55001/plone @@ -12,6 +12,6 @@ services: - backend backend: - image: ploneorgbr/site-backend:acceptance + image: ghcr.io/plonegovbr/ploneorgbr-backend:acceptance ports: - "55001:55001" diff --git a/frontend/package.json b/frontend/package.json index 547622e..7408ea2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -163,7 +163,7 @@ "@kitconcept/volto-slider-block": "*", "@plone-collective/volto-authomatic": "*", "@plone/scripts": "2.1.2", - "@plone/volto": "16.6.0", + "@plone/volto": "16.16.0", "@plonegovbr/volto-code-block": "1.0.0", "@plonegovbr/volto-twitter-block": "0.1.0", "volto-form-block": "3.0.0", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 89e1c45..0cd9089 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3081,9 +3081,9 @@ __metadata: languageName: node linkType: hard -"@plone/volto@npm:16.6.0": - version: 16.6.0 - resolution: "@plone/volto@npm:16.6.0" +"@plone/volto@npm:16.16.0": + version: 16.16.0 + resolution: "@plone/volto@npm:16.16.0" dependencies: "@babel/core": ^7.0.0 "@babel/plugin-proposal-export-default-from": 7.18.9 @@ -3147,7 +3147,7 @@ __metadata: eslint-plugin-prettier: 3.1.3 eslint-plugin-react: 7.20.0 eslint-plugin-react-hooks: 4.0.2 - express: 4.17.1 + express: 4.17.3 filesize: 6 glob: 7.1.6 hamburgers: 1.1.3 @@ -3182,6 +3182,7 @@ __metadata: postcss-load-config: 3.1.4 postcss-loader: 4.3.0 postcss-overrides: 3.1.4 + postcss-scss: 4.0.6 prepend-http: 2 prettier: 2.0.5 pretty-bytes: 5.3.0 @@ -3192,6 +3193,7 @@ __metadata: razzle: 4.2.17 razzle-dev-utils: 4.2.17 razzle-plugin-bundle-analyzer: 4.2.17 + razzle-plugin-scss: 4.2.18 rc-time-picker: 3.7.3 react: 17.0.2 react-anchor-link-smooth-scroll: 1.0.12 @@ -3215,6 +3217,7 @@ __metadata: react-router: 5.2.0 react-router-config: 5.1.1 react-router-dom: 5.2.0 + react-router-hash-link: 2.4.3 react-select: 4.3.1 react-select-async-paginate: 0.5.3 react-share: 2.3.1 @@ -3262,7 +3265,7 @@ __metadata: webpack-node-externals: 3.0.0 xmlrpc: 1.3.2 yarnhook: 0.5.1 - checksum: e2e13cf9cf6c0d74bff7a497f931a6a0ae5c6b606db1c62254d2ee4e0226f372c2b9e405f7375de8cd68148fa69d8fa20e13d4e6f5d65acd9a3ef0890097926c + checksum: 92b90e15a85f2efa79ca8e3633de3fd45bddb82ab9c5f2fa88206b0d736a87c7192080cc9222d2f3c47472697ed5b30c2c4ddc521778d54ce8280d1bb565c500 languageName: node linkType: hard @@ -5949,7 +5952,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.7, accepts@npm:~1.3.8": +"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -6051,6 +6054,16 @@ __metadata: languageName: node linkType: hard +"adjust-sourcemap-loader@npm:3.0.0": + version: 3.0.0 + resolution: "adjust-sourcemap-loader@npm:3.0.0" + dependencies: + loader-utils: ^2.0.0 + regex-parser: ^2.2.11 + checksum: 5ceabea85219fcafed06f7d1aafb37dc761c6435e4ded2a8c6b01c69844250aa94ef65a4d07210dc7566c2d8b4c9ba8897518db596a550461eed26fbeb76b96f + languageName: node + linkType: hard + "agent-base@npm:6, agent-base@npm:^6.0.0, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -6424,6 +6437,13 @@ __metadata: languageName: node linkType: hard +"arity-n@npm:^1.0.4": + version: 1.0.4 + resolution: "arity-n@npm:1.0.4" + checksum: 3d76e16907f7b8a9452690c1efc301d0fbecea457365797eccfbade9b8d1653175b2c38343201bf26fdcbf0bcbb31eab6d912e7c008c6d19042301dc0be80a73 + languageName: node + linkType: hard + "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -7370,21 +7390,21 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.19.0": - version: 1.19.0 - resolution: "body-parser@npm:1.19.0" +"body-parser@npm:1.19.2": + version: 1.19.2 + resolution: "body-parser@npm:1.19.2" dependencies: - bytes: 3.1.0 + bytes: 3.1.2 content-type: ~1.0.4 debug: 2.6.9 depd: ~1.1.2 - http-errors: 1.7.2 + http-errors: 1.8.1 iconv-lite: 0.4.24 on-finished: ~2.3.0 - qs: 6.7.0 - raw-body: 2.4.0 - type-is: ~1.6.17 - checksum: 490231b4c89bbd43112762f7ba8e5342c174a6c9f64284a3b0fcabf63277e332f8316765596f1e5b15e4f3a6cf0422e005f4bb3149ed3a224bb025b7a36b9ac1 + qs: 6.9.7 + raw-body: 2.4.3 + type-is: ~1.6.18 + checksum: 7f777ea65670e2622ca4a785b5dcb2a68451b3bb8d4d0f41091d307d56b640dba588a9ae04d85dda2cdd5e42788266a783528d5417e5643720fd611fd52522e7 languageName: node linkType: hard @@ -7747,13 +7767,6 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.1.0": - version: 3.1.0 - resolution: "bytes@npm:3.1.0" - checksum: 7c3b21c5d9d44ed455460d5d36a31abc6fa2ce3807964ba60a4b03fd44454c8cf07bb0585af83bfde1c5cc2ea4bbe5897bc3d18cd15e0acf25a3615a35aba2df - languageName: node - linkType: hard - "bytes@npm:3.1.2, bytes@npm:^3.0.0": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -8032,6 +8045,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:5.3.1, camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + "camelcase@npm:^2.0.0": version: 2.1.1 resolution: "camelcase@npm:2.1.1" @@ -8039,13 +8059,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - "camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" @@ -8210,6 +8223,25 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + languageName: node + linkType: hard + "chokidar@npm:^2.1.8": version: 2.1.8 resolution: "chokidar@npm:2.1.8" @@ -8233,25 +8265,6 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.1, chokidar@npm:^3.4.2": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c - languageName: node - linkType: hard - "chownr@npm:^1.1.1, chownr@npm:^1.1.2": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -8749,6 +8762,15 @@ __metadata: languageName: node linkType: hard +"compose-function@npm:3.0.3": + version: 3.0.3 + resolution: "compose-function@npm:3.0.3" + dependencies: + arity-n: ^1.0.4 + checksum: 9f17d431e3ee4797c844f2870e13494079882ac3dbc54c143b7d99967b371908e0ce7ceb71c6aed61e2ecddbcd7bb437d91428a3d0e6569aee17a87fcbc7918f + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -8909,15 +8931,6 @@ __metadata: languageName: node linkType: hard -"content-disposition@npm:0.5.3": - version: 0.5.3 - resolution: "content-disposition@npm:0.5.3" - dependencies: - safe-buffer: 5.1.2 - checksum: 95bf164c0b0b8199d3f44b7631e51b37f683c6a90b9baa4315bd3d405a6d1bc81b7346f0981046aa004331fb3d7a28b629514d01fc209a5251573fc7e4d33380 - languageName: node - linkType: hard - "content-disposition@npm:0.5.4": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" @@ -8934,6 +8947,22 @@ __metadata: languageName: node linkType: hard +"convert-source-map@npm:1.7.0": + version: 1.7.0 + resolution: "convert-source-map@npm:1.7.0" + dependencies: + safe-buffer: ~5.1.1 + checksum: bcd2e3ea7d37f96b85a6e362c8a89402ccc73757256e3ee53aa2c22fe915adb854c66b1f81111be815a3a6a6ce3c58e8001858e883c9d5b4fe08a853fa865967 + languageName: node + linkType: hard + +"convert-source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "convert-source-map@npm:0.3.5" + checksum: 33b209aa8f33bcaa9a22f2dbf6bfb71f4a429d8e948068d61b6087304e3194c30016d1e02e842184e653b74442c7e2dd2e7db97532b67f556aded3d8b4377a2c + languageName: node + linkType: hard + "convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" @@ -8948,10 +8977,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.4.0": - version: 0.4.0 - resolution: "cookie@npm:0.4.0" - checksum: 760384ba0aef329c52523747e36a452b5e51bc49b34160363a6934e7b7df3f93fcc88b35e33450361535d40a92a96412da870e1816aba9aa6cc556a9fedd8492 +"cookie@npm:0.4.2, cookie@npm:^0.4.0": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b languageName: node linkType: hard @@ -8962,13 +8991,6 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.4.0": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b - languageName: node - linkType: hard - "cookiejar@npm:^2.1.0": version: 2.1.3 resolution: "cookiejar@npm:2.1.3" @@ -9463,6 +9485,18 @@ __metadata: languageName: node linkType: hard +"css@npm:^2.0.0": + version: 2.2.4 + resolution: "css@npm:2.2.4" + dependencies: + inherits: ^2.0.3 + source-map: ^0.6.1 + source-map-resolve: ^0.5.2 + urix: ^0.1.0 + checksum: a35d483c5ccc04bcde3b1e7393d58ad3eee1dd6956df0f152de38e46a17c0ee193c30eec6b1e59831ad0e74599385732000e95987fcc9cb2b16c6d951bae49e1 + languageName: node + linkType: hard + "css@npm:^3.0.0": version: 3.0.0 resolution: "css@npm:3.0.0" @@ -9696,6 +9730,16 @@ __metadata: languageName: node linkType: hard +"d@npm:1, d@npm:^1.0.1": + version: 1.0.1 + resolution: "d@npm:1.0.1" + dependencies: + es5-ext: ^0.10.50 + type: ^1.0.1 + checksum: 49ca0639c7b822db670de93d4fbce44b4aa072cd848c76292c9978a8cd0fff1028763020ff4b0f147bd77bfe29b4c7f82e0f71ade76b2a06100543cdfd948d19 + languageName: node + linkType: hard + "damerau-levenshtein@npm:^1.0.4": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -10995,6 +11039,17 @@ __metadata: languageName: node linkType: hard +"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50": + version: 0.10.62 + resolution: "es5-ext@npm:0.10.62" + dependencies: + es6-iterator: ^2.0.3 + es6-symbol: ^3.1.3 + next-tick: ^1.1.0 + checksum: 25f42f6068cfc6e393cf670bc5bba249132c5f5ec2dd0ed6e200e6274aca2fed8e9aec8a31c76031744c78ca283c57f0b41c7e737804c6328c7b8d3fbcba7983 + languageName: node + linkType: hard + "es5-shim@npm:^4.5.13": version: 4.6.7 resolution: "es5-shim@npm:4.6.7" @@ -11002,6 +11057,17 @@ __metadata: languageName: node linkType: hard +"es6-iterator@npm:2.0.3, es6-iterator@npm:^2.0.3": + version: 2.0.3 + resolution: "es6-iterator@npm:2.0.3" + dependencies: + d: 1 + es5-ext: ^0.10.35 + es6-symbol: ^3.1.1 + checksum: 6e48b1c2d962c21dee604b3d9f0bc3889f11ed5a8b33689155a2065d20e3107e2a69cc63a71bd125aeee3a589182f8bbcb5c8a05b6a8f38fa4205671b6d09697 + languageName: node + linkType: hard + "es6-shim@npm:^0.35.5": version: 0.35.6 resolution: "es6-shim@npm:0.35.6" @@ -11009,6 +11075,16 @@ __metadata: languageName: node linkType: hard +"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": + version: 3.1.3 + resolution: "es6-symbol@npm:3.1.3" + dependencies: + d: ^1.0.1 + ext: ^1.1.2 + checksum: cd49722c2a70f011eb02143ef1c8c70658d2660dead6641e160b94619f408b9cf66425515787ffe338affdf0285ad54f4eae30ea5bd510e33f8659ec53bcaa70 + languageName: node + linkType: hard + "escalade@npm:^3.0.2, escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -11677,16 +11753,16 @@ __metadata: languageName: node linkType: hard -"express@npm:4.17.1": - version: 4.17.1 - resolution: "express@npm:4.17.1" +"express@npm:4.17.3": + version: 4.17.3 + resolution: "express@npm:4.17.3" dependencies: - accepts: ~1.3.7 + accepts: ~1.3.8 array-flatten: 1.1.1 - body-parser: 1.19.0 - content-disposition: 0.5.3 + body-parser: 1.19.2 + content-disposition: 0.5.4 content-type: ~1.0.4 - cookie: 0.4.0 + cookie: 0.4.2 cookie-signature: 1.0.6 debug: 2.6.9 depd: ~1.1.2 @@ -11700,18 +11776,18 @@ __metadata: on-finished: ~2.3.0 parseurl: ~1.3.3 path-to-regexp: 0.1.7 - proxy-addr: ~2.0.5 - qs: 6.7.0 + proxy-addr: ~2.0.7 + qs: 6.9.7 range-parser: ~1.2.1 - safe-buffer: 5.1.2 - send: 0.17.1 - serve-static: 1.14.1 - setprototypeof: 1.1.1 + safe-buffer: 5.2.1 + send: 0.17.2 + serve-static: 1.14.2 + setprototypeof: 1.2.0 statuses: ~1.5.0 type-is: ~1.6.18 utils-merge: 1.0.1 vary: ~1.1.2 - checksum: d964e9e17af331ea6fa2f84999b063bc47189dd71b4a735df83f9126d3bb2b92e830f1cb1d7c2742530eb625e2689d7a9a9c71f0c3cc4dd6015c3cd32a01abd5 + checksum: 967e53b74a37eafdf9789b9938c8df86102928b4985b1ad5e385c709deeab405a364de95ca744bc2cc5d05b5d9cc1efc69ae2ae17688a462038648d5a924bfad languageName: node linkType: hard @@ -11754,6 +11830,15 @@ __metadata: languageName: node linkType: hard +"ext@npm:^1.1.2": + version: 1.7.0 + resolution: "ext@npm:1.7.0" + dependencies: + type: ^2.7.2 + checksum: ef481f9ef45434d8c867cfd09d0393b60945b7c8a1798bedc4514cb35aac342ccb8d8ecb66a513e6a2b4ec1e294a338e3124c49b29736f8e7c735721af352c31 + languageName: node + linkType: hard + "extend-shallow@npm:^2.0.1": version: 2.0.1 resolution: "extend-shallow@npm:2.0.1" @@ -13787,16 +13872,16 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:1.7.2": - version: 1.7.2 - resolution: "http-errors@npm:1.7.2" +"http-errors@npm:1.8.1": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" dependencies: depd: ~1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.1 + inherits: 2.0.4 + setprototypeof: 1.2.0 statuses: ">= 1.5.0 < 2" - toidentifier: 1.0.0 - checksum: 5534b0ae08e77f5a45a2380f500e781f6580c4ff75b816cb1f09f99a290b57e78a518be6d866db1b48cca6b052c09da2c75fc91fb16a2fe3da3c44d9acbb9972 + toidentifier: 1.0.1 + checksum: d3c7e7e776fd51c0a812baff570bdf06fe49a5dc448b700ab6171b1250e4cf7db8b8f4c0b133e4bfe2451022a5790c1ca6c2cae4094dedd6ac8304a1267f91d2 languageName: node linkType: hard @@ -13825,19 +13910,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:~1.7.2": - version: 1.7.3 - resolution: "http-errors@npm:1.7.3" - dependencies: - depd: ~1.1.2 - inherits: 2.0.4 - setprototypeof: 1.1.1 - statuses: ">= 1.5.0 < 2" - toidentifier: 1.0.0 - checksum: a59f359473f4b3ea78305beee90d186268d6075432622a46fb7483059068a2dd4c854a20ac8cd438883127e06afb78c1309168bde6cdfeed1e3700eb42487d99 - languageName: node - linkType: hard - "http-parser-js@npm:>=0.5.1": version: 0.5.8 resolution: "http-parser-js@npm:0.5.8" @@ -14101,6 +14173,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:^4.0.0": + version: 4.3.0 + resolution: "immutable@npm:4.3.0" + checksum: bbd7ea99e2752e053323543d6ff1cc71a4b4614fa6121f321ca766db2bd2092f3f1e0a90784c5431350b7344a4f792fa002eac227062d59b9377b6c09063b58b + languageName: node + linkType: hard + "immutable@npm:~3.7.4": version: 3.7.6 resolution: "immutable@npm:3.7.6" @@ -17881,6 +17960,13 @@ __metadata: languageName: node linkType: hard +"next-tick@npm:^1.1.0": + version: 1.1.0 + resolution: "next-tick@npm:1.1.0" + checksum: 83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b + languageName: node + linkType: hard + "nice-try@npm:^1.0.4": version: 1.0.5 resolution: "nice-try@npm:1.0.5" @@ -19799,6 +19885,24 @@ __metadata: languageName: node linkType: hard +"postcss-scss@npm:4.0.6": + version: 4.0.6 + resolution: "postcss-scss@npm:4.0.6" + peerDependencies: + postcss: ^8.4.19 + checksum: 133a1cba31e2e167f4e841e66ec6a798eaf44c7911f9182ade0b5b1e71a8198814aa390b8c9d5db6b01358115232e5b15b1a4f8c5198acfccfb1f3fdbd328cdf + languageName: node + linkType: hard + +"postcss-scss@npm:^3.0.4": + version: 3.0.5 + resolution: "postcss-scss@npm:3.0.5" + dependencies: + postcss: ^8.2.7 + checksum: e927317fa095a6a2375ba923d70c9f0f31dc6fd61148885fc7c3d85cc55450601288be3d0a890cf34473807d27a15693135a8c076581e8ae29fffa175a1b37a3 + languageName: node + linkType: hard + "postcss-selector-parser@npm:^3.0.0": version: 3.1.2 resolution: "postcss-selector-parser@npm:3.1.2" @@ -19866,6 +19970,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:7.0.36": + version: 7.0.36 + resolution: "postcss@npm:7.0.36" + dependencies: + chalk: ^2.4.2 + source-map: ^0.6.1 + supports-color: ^6.1.0 + checksum: 4cfc0989b9ad5d0e8971af80d87f9c5beac5c84cb89ff22ad69852edf73c0a2fa348e7e0a135b5897bf893edad0fe86c428769050431ad9b532f072ff530828d + languageName: node + linkType: hard + "postcss@npm:8.3.11": version: 8.3.11 resolution: "postcss@npm:8.3.11" @@ -19909,6 +20024,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.2.7": + version: 8.4.21 + resolution: "postcss@npm:8.4.21" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + languageName: node + linkType: hard + "prelude-ls@npm:~1.1.2": version: 1.1.2 resolution: "prelude-ls@npm:1.1.2" @@ -20231,7 +20357,7 @@ __metadata: languageName: node linkType: hard -"proxy-addr@npm:~2.0.5, proxy-addr@npm:~2.0.7": +"proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" dependencies: @@ -20396,10 +20522,10 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.7.0": - version: 6.7.0 - resolution: "qs@npm:6.7.0" - checksum: dfd5f6adef50e36e908cfa70a6233871b5afe66fbaca37ecc1da352ba29eb2151a3797991948f158bb37fccde51bd57845cb619a8035287bfc24e4591172c347 +"qs@npm:6.9.7": + version: 6.9.7 + resolution: "qs@npm:6.9.7" + checksum: 5bbd263332ccf320a1f36d04a2019a5834dc20bcb736431eaccde2a39dcba03fb26d2fd00174f5d7bc26aaad1cad86124b18440883ac042ea2a0fca6170c1bf1 languageName: node linkType: hard @@ -20542,15 +20668,15 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.4.0": - version: 2.4.0 - resolution: "raw-body@npm:2.4.0" +"raw-body@npm:2.4.3": + version: 2.4.3 + resolution: "raw-body@npm:2.4.3" dependencies: - bytes: 3.1.0 - http-errors: 1.7.2 + bytes: 3.1.2 + http-errors: 1.8.1 iconv-lite: 0.4.24 unpipe: 1.0.0 - checksum: 6343906939e018c6e633a34a938a5d6d1e93ffcfa48646e00207d53b418e941953b521473950c079347220944dc75ba10e7b3c08bf97e3ac72c7624882db09bb + checksum: d2961fa3c71c9c22dc2c3fd60ff377bf36dfed7d7a748f2b25d585934a3e9df565bb9aa5bc2e3a716ea941f4bc2a6ddc795c8b0cf7219fb071029b59b1985394 languageName: node linkType: hard @@ -20611,6 +20737,27 @@ __metadata: languageName: node linkType: hard +"razzle-plugin-scss@npm:4.2.18": + version: 4.2.18 + resolution: "razzle-plugin-scss@npm:4.2.18" + dependencies: + autoprefixer: ^10.2.3 + css-loader: ^5.0.0 + deepmerge: ^4.2.2 + postcss-load-config: ^3.0.0 + postcss-loader: ^4.2.0 + postcss-scss: ^3.0.4 + resolve-url-loader: ^3.1.2 + sass: ^1.29.0 + sass-loader: ^10.0.3 + peerDependencies: + mini-css-extract-plugin: ">=0.9.0 <1.0.0" + razzle: 4.2.18 + razzle-dev-utils: 4.2.18 + checksum: 87a70a6327183eb077d5beb8ea5a04b679e104fc554c351ee497090ce1fb99f9c2b800562abb1bfb9b31661599d189c293539f5bac3cd45cd4a9aea2ba8e3b91 + languageName: node + linkType: hard + "razzle-start-server-webpack-plugin@npm:4.2.17": version: 4.2.17 resolution: "razzle-start-server-webpack-plugin@npm:4.2.17" @@ -21345,6 +21492,18 @@ __metadata: languageName: node linkType: hard +"react-router-hash-link@npm:2.4.3": + version: 2.4.3 + resolution: "react-router-hash-link@npm:2.4.3" + dependencies: + prop-types: ^15.7.2 + peerDependencies: + react: ">=15" + react-router-dom: ">=4" + checksum: 7dad53ebbd726e8a1ab379f4e68bce3a6b406e55af3de8a9c128510a81ad4a681ce9a5e25c0efc3d3c283b276145729b6228d0173d1d0c6e04b9cc6fb10738d4 + languageName: node + linkType: hard + "react-router@npm:5.2.0": version: 5.2.0 resolution: "react-router@npm:5.2.0" @@ -22026,6 +22185,13 @@ __metadata: languageName: node linkType: hard +"regex-parser@npm:^2.2.11": + version: 2.2.11 + resolution: "regex-parser@npm:2.2.11" + checksum: 78200331ec0cc372302d287a4946c38681eb5fe435453fca572cb53cac0ba579e5eb3b9e25eac24c0c80a555fb3ea7a637814a35da1e9bc88e8819110ae5de24 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.4.3": version: 1.4.3 resolution: "regexp.prototype.flags@npm:1.4.3" @@ -22452,6 +22618,24 @@ __metadata: languageName: node linkType: hard +"resolve-url-loader@npm:^3.1.2": + version: 3.1.5 + resolution: "resolve-url-loader@npm:3.1.5" + dependencies: + adjust-sourcemap-loader: 3.0.0 + camelcase: 5.3.1 + compose-function: 3.0.3 + convert-source-map: 1.7.0 + es6-iterator: 2.0.3 + loader-utils: ^1.2.3 + postcss: 7.0.36 + rework: 1.0.1 + rework-visit: 1.0.0 + source-map: 0.6.1 + checksum: eb52911eff20723f07409cc12138d254fa0dd4a4f3b1ba11ee1b29912afb03f1272aaddb523658be1e3a946e0d1bf6f603d0e107753ab83d48ad2116cf04b7f6 + languageName: node + linkType: hard + "resolve-url@npm:^0.2.1": version: 0.2.1 resolution: "resolve-url@npm:0.2.1" @@ -22551,6 +22735,23 @@ __metadata: languageName: node linkType: hard +"rework-visit@npm:1.0.0": + version: 1.0.0 + resolution: "rework-visit@npm:1.0.0" + checksum: 969ca1f4e5bf4a1755c464a9b498da51eb3f28a798cf73da2cf0a3a3ab7b21a2f05c9d3bfa5fb81c8aaf5487dd31679efa67b8d0f418277ef5deb2a230b17c81 + languageName: node + linkType: hard + +"rework@npm:1.0.1": + version: 1.0.1 + resolution: "rework@npm:1.0.1" + dependencies: + convert-source-map: ^0.3.3 + css: ^2.0.0 + checksum: 13e5054d81ac84eee488fd4bacd20d08f35683bd8e296b4358e7f0a41b2d30a959313b7794f388f336705ad18d36af6ee7080e1b6c1313ecf33bc51d1bd95971 + languageName: node + linkType: hard + "rfdc@npm:^1.3.0": version: 1.3.0 resolution: "rfdc@npm:1.3.0" @@ -22750,6 +22951,44 @@ __metadata: languageName: node linkType: hard +"sass-loader@npm:^10.0.3": + version: 10.4.1 + resolution: "sass-loader@npm:10.4.1" + dependencies: + klona: ^2.0.4 + loader-utils: ^2.0.0 + neo-async: ^2.6.2 + schema-utils: ^3.0.0 + semver: ^7.3.2 + peerDependencies: + fibers: ">= 3.1.0" + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + sass: ^1.3.0 + webpack: ^4.36.0 || ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + checksum: df9a65a62247e95305299ccbdf212cffdcdb69490928aecdf4f3dcf539b5302ed7cbffa663f83c5fc3ce0864decf84257a9ce484f6df4cb4426feeb88445dcd0 + languageName: node + linkType: hard + +"sass@npm:^1.29.0": + version: 1.59.3 + resolution: "sass@npm:1.59.3" + dependencies: + chokidar: ">=3.0.0 <4.0.0" + immutable: ^4.0.0 + source-map-js: ">=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 839b5282cdf7d0ba3fdbfb605277dd584a8c40fa3e3e58ad905d64cd812acfb82ff0a4072d4981673db884ee61505472ff07c5c5a8a497f16ba013b183ba6473 + languageName: node + linkType: hard + "sax@npm:1.2.x, sax@npm:~1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" @@ -22970,9 +23209,9 @@ __metadata: languageName: node linkType: hard -"send@npm:0.17.1": - version: 0.17.1 - resolution: "send@npm:0.17.1" +"send@npm:0.17.2": + version: 0.17.2 + resolution: "send@npm:0.17.2" dependencies: debug: 2.6.9 depd: ~1.1.2 @@ -22981,13 +23220,13 @@ __metadata: escape-html: ~1.0.3 etag: ~1.8.1 fresh: 0.5.2 - http-errors: ~1.7.2 + http-errors: 1.8.1 mime: 1.6.0 - ms: 2.1.1 + ms: 2.1.3 on-finished: ~2.3.0 range-parser: ~1.2.1 statuses: ~1.5.0 - checksum: d214c2fa42e7fae3f8fc1aa3931eeb3e6b78c2cf141574e09dbe159915c1e3a337269fc6b7512e7dfddcd7d6ff5974cb62f7c3637ba86a55bde20a92c18bdca0 + checksum: c28f36deb4ccba9b8d6e6a1e472b8e7c40a1f51575bdf8f67303568cc9e71131faa3adc36fdb72611616ccad1584358bbe4c3ebf419e663ecc5de868ad3d3f03 languageName: node linkType: hard @@ -23076,15 +23315,15 @@ __metadata: languageName: node linkType: hard -"serve-static@npm:1.14.1": - version: 1.14.1 - resolution: "serve-static@npm:1.14.1" +"serve-static@npm:1.14.2": + version: 1.14.2 + resolution: "serve-static@npm:1.14.2" dependencies: encodeurl: ~1.0.2 escape-html: ~1.0.3 parseurl: ~1.3.3 - send: 0.17.1 - checksum: c6b268e8486d39ecd54b86c7f2d0ee4a38cd7514ddd9c92c8d5793bb005afde5e908b12395898ae206782306ccc848193d93daa15b86afb3cbe5a8414806abe8 + send: 0.17.2 + checksum: d97f3183b1dfcd8ce9c0e37e18e87fd31147ed6c8ee0b2c3a089d795e44ee851ca5061db01574f806d54f4e4b70bc694d9ca64578653514e04a28cbc97a1de05 languageName: node linkType: hard @@ -23133,13 +23372,6 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.1.1": - version: 1.1.1 - resolution: "setprototypeof@npm:1.1.1" - checksum: a8bee29c1c64c245d460ce53f7460af8cbd0aceac68d66e5215153992cc8b3a7a123416353e0c642060e85cc5fd4241c92d1190eec97eda0dcb97436e8fcca3b - languageName: node - linkType: hard - "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -23313,7 +23545,7 @@ __metadata: "@kitconcept/volto-slider-block": "*" "@plone-collective/volto-authomatic": "*" "@plone/scripts": 2.1.2 - "@plone/volto": 16.6.0 + "@plone/volto": 16.16.0 "@plonegovbr/volto-code-block": 1.0.0 "@plonegovbr/volto-twitter-block": 0.1.0 "@storybook/addon-actions": ^6.3.0 @@ -23571,6 +23803,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + "source-map-js@npm:^0.6.2": version: 0.6.2 resolution: "source-map-js@npm:0.6.2" @@ -23578,14 +23817,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map-resolve@npm:^0.5.0": +"source-map-resolve@npm:^0.5.0, source-map-resolve@npm:^0.5.2": version: 0.5.3 resolution: "source-map-resolve@npm:0.5.3" dependencies: @@ -23625,6 +23857,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:0.6.1, source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + "source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" @@ -23632,13 +23871,6 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - "source-map@npm:^0.7.3": version: 0.7.4 resolution: "source-map@npm:0.7.4" @@ -25018,13 +25250,6 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.0": - version: 1.0.0 - resolution: "toidentifier@npm:1.0.0" - checksum: 199e6bfca1531d49b3506cff02353d53ec987c9ee10ee272ca6484ed97f1fc10fb77c6c009079ca16d5c5be4a10378178c3cacdb41ce9ec954c3297c74c6053e - languageName: node - linkType: hard - "toidentifier@npm:1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -25245,7 +25470,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.17, type-is@npm:~1.6.18": +"type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -25255,6 +25480,20 @@ __metadata: languageName: node linkType: hard +"type@npm:^1.0.1": + version: 1.2.0 + resolution: "type@npm:1.2.0" + checksum: dae8c64f82c648b985caf321e9dd6e8b7f4f2e2d4f846fc6fd2c8e9dc7769382d8a52369ddbaccd59aeeceb0df7f52fb339c465be5f2e543e81e810e413451ee + languageName: node + linkType: hard + +"type@npm:^2.7.2": + version: 2.7.2 + resolution: "type@npm:2.7.2" + checksum: 0f42379a8adb67fe529add238a3e3d16699d95b42d01adfe7b9a7c5da297f5c1ba93de39265ba30ffeb37dfd0afb3fb66ae09f58d6515da442219c086219f6f4 + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" From 118798e888a27b499ec09783b58dfb65cb97cff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Andrei?= Date: Thu, 16 Mar 2023 14:21:00 -0300 Subject: [PATCH 2/3] Fix frontend build --- .github/workflows/frontend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index bd66ddb..aa45861 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -111,7 +111,7 @@ jobs: with: platforms: linux/amd64 context: frontend/ - file: frontend/dockerfiles/Dockerfile + file: frontend/Dockerfile build-args: | VOLTO_VERSION=${{ env.VOLTO_VERSION }} push: ${{ github.event_name != 'pull_request' }} From 0a96d2b8d9ad885e468d6bf642b59ac829b14037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Andrei?= Date: Thu, 16 Mar 2023 14:33:45 -0300 Subject: [PATCH 3/3] Fix GHA for frontend --- .github/workflows/frontend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index aa45861..9019db1 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -5,7 +5,7 @@ on: push: paths: - "frontend/**" - - ".github/workflows/frontend-testing.yml" + - ".github/workflows/frontend.yml" env: NODE_VERSION: "16.x"