Commit 120844ba4f5f428bb78250a665d65f9f363e9a13
1 parent
fd0af941
Exists in
master
Modificação do docker-compose e do rancher a pedido da DTI
Showing
17 changed files
with
130 additions
and
67 deletions
Show diff stats
Vagrantfile
| ... | ... | @@ -4,7 +4,7 @@ Vagrant.require_version ">= 1.5.0" |
| 4 | 4 | VAGRANTFILE_API_VERSION = '2' |
| 5 | 5 | |
| 6 | 6 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
| 7 | - config.vm.box = 'ubuntu/trusty64' | |
| 7 | + config.vm.box = 'ubuntu/xenial64' | |
| 8 | 8 | config.vm.provision :shell, path: 'provision_root.sh' |
| 9 | 9 | config.vm.provision :shell, path: 'provision.sh', privileged: false |
| 10 | 10 | config.vm.network :forwarded_port, guest: 5000, host: 5000 | ... | ... |
app/templates/exemplo.html
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | <meta property="creator.productor" content="http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981"/> |
| 7 | 7 | <title>Barra Brasil</title> |
| 8 | 8 | <!--Adicionado para fazer os testes via mocha/chai-jq/chai/zombie --> |
| 9 | -<script type="text/javascript" src="jquery.js"></script> | |
| 9 | +<script type="text/javascript" src="static/jquery.js"></script> | |
| 10 | 10 | <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> |
| 11 | 11 | |
| 12 | 12 | <script type="text/javascript"> | ... | ... |
build.sh
| ... | ... | @@ -29,6 +29,7 @@ then |
| 29 | 29 | cp templates/$profile/barra-brasil-es.js ../docker/public_html/barra.js.es #Copiando enquanto a barra é estática. |
| 30 | 30 | cp templates/exemplo.html ../docker/public_html/index.html #Copiando enquanto a barra é estática. |
| 31 | 31 | cp static/opensans-bold.woff ../docker/public_html/static/ #Copiando enquanto a barra é estática. |
| 32 | + cp static/jquery-2.1.3.min.js ../docker/public_html/jquery.js #Copiando enquanto a barra é estática. | |
| 32 | 33 | echo "Copiado" |
| 33 | 34 | else |
| 34 | 35 | echo "Erro. O profile '$profile' não existe." | ... | ... |
docker/Dockerfile
docker/docker-compose.yml
| 1 | -web: | |
| 2 | - image: govbr/barra.govbr | |
| 3 | - ports: | |
| 4 | - - "80:80" | |
| 1 | +certificado-barrabrasil: | |
| 2 | + ports: | |
| 3 | + - 443:80 | |
| 4 | + labels: | |
| 5 | + io.rancher.loadbalancer.ssl.ports: '443' | |
| 6 | + tty: true | |
| 7 | + image: rancher/load-balancer-service | |
| 8 | + links: | |
| 9 | + - web:web | |
| 10 | + stdin_open: true | |
| 11 | +web: | |
| 12 | + ports: | |
| 13 | + - 80:80/tcp | |
| 14 | + tty: true | |
| 15 | + image: hub.docker.planejamento.gov.br/barra-brasil:2.1.21 | |
| 16 | + stdin_open: true | ... | ... |
docker/public_html/index.html
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | <meta property="creator.productor" content="http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981"/> |
| 7 | 7 | <title>Barra Brasil</title> |
| 8 | 8 | <!--Adicionado para fazer os testes via mocha/chai-jq/chai/zombie --> |
| 9 | -<script type="text/javascript" src="jquery.js"></script> | |
| 9 | +<script type="text/javascript" src="static/jquery.js"></script> | |
| 10 | 10 | <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> |
| 11 | 11 | |
| 12 | 12 | <script type="text/javascript"> | ... | ... |
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +certificado-barrabrasil: | |
| 2 | + scale: 1 | |
| 3 | + load_balancer_config: | |
| 4 | + haproxy_config: {} | |
| 5 | + default_cert: barra.brasil | |
| 6 | + health_check: | |
| 7 | + port: 42 | |
| 8 | + interval: 2000 | |
| 9 | + unhealthy_threshold: 3 | |
| 10 | + healthy_threshold: 2 | |
| 11 | + response_timeout: 2000 | |
| 12 | +web: | |
| 13 | + scale: 1 | ... | ... |
makefile
package.json
| ... | ... | @@ -6,12 +6,10 @@ |
| 6 | 6 | "coffee-script": "1.12.3", |
| 7 | 7 | "coffeescript-concat": "1.0.14", |
| 8 | 8 | "uglifyjs": "2.4.10", |
| 9 | -"express": "4.14.1", | |
| 10 | 9 | "chai": "3.5.0", |
| 11 | 10 | "chai-jq": "0.0.9", |
| 12 | 11 | "mocha": "3.2.0", |
| 13 | -"zombie": "5.0.5", | |
| 14 | -"ejs": "2.5.5" | |
| 12 | +"zombie": "5.0.5" | |
| 15 | 13 | }, |
| 16 | 14 | "optionalDependencies": {}, |
| 17 | 15 | "scripts": { | ... | ... |
provision.sh
| ... | ... | @@ -2,22 +2,22 @@ |
| 2 | 2 | set -e -x -o pipefail |
| 3 | 3 | export DEBIAN_FRONTEND='noninteractive' |
| 4 | 4 | |
| 5 | -cd /home/vagrant | |
| 5 | +cd /home/$(whoami) | |
| 6 | 6 | |
| 7 | 7 | # Installing nvm |
| 8 | 8 | wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash |
| 9 | 9 | |
| 10 | 10 | # This enables NVM without a logout/login |
| 11 | -export NVM_DIR="/home/vagrant/.nvm" | |
| 11 | +export NVM_DIR="/home/"$(whoami)"/.nvm" | |
| 12 | 12 | [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm |
| 13 | 13 | |
| 14 | 14 | # Install a node and alias |
| 15 | -nvm install iojs | |
| 16 | -nvm alias default iojs | |
| 15 | +nvm install node | |
| 16 | +nvm alias default node | |
| 17 | 17 | |
| 18 | 18 | rm -Rf barra-govbr/ |
| 19 | 19 | GIT_SSL_NO_VERIFY=true git clone http://portal.softwarepublico.gov.br/gitlab/govbr/barra-govbr.git |
| 20 | 20 | |
| 21 | 21 | cd barra-govbr |
| 22 | 22 | |
| 23 | -PROFILE=default make run | |
| 23 | +PROFILE=default make test | ... | ... |
provision_root.sh
| ... | ... | @@ -2,14 +2,36 @@ |
| 2 | 2 | set -e -x -o pipefail |
| 3 | 3 | export DEBIAN_FRONTEND='noninteractive' |
| 4 | 4 | |
| 5 | -sudo apt-get update | |
| 5 | +apt-get update | |
| 6 | 6 | |
| 7 | 7 | apt-get install -y \ |
| 8 | + apt-transport-https \ | |
| 9 | + ca-certificates \ | |
| 10 | + curl \ | |
| 8 | 11 | git \ |
| 12 | + linux-image-extra-$(uname -r) \ | |
| 13 | + linux-image-extra-virtual \ | |
| 9 | 14 | python-dev \ |
| 10 | 15 | python-pip \ |
| 11 | 16 | python-virtualenv \ |
| 12 | 17 | ruby |
| 13 | 18 | |
| 19 | +curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add - | |
| 20 | + | |
| 21 | +add-apt-repository \ | |
| 22 | + "deb https://apt.dockerproject.org/repo/ \ | |
| 23 | + ubuntu-$(lsb_release -cs) \ | |
| 24 | + main" | |
| 25 | + | |
| 26 | +apt-get update | |
| 27 | + | |
| 28 | +apt-get -y install docker-engine | |
| 29 | + | |
| 30 | +usermod -aG docker ubuntu | |
| 31 | + | |
| 32 | +curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
| 33 | + | |
| 34 | +chmod +x /usr/local/bin/docker-compose | |
| 35 | + | |
| 14 | 36 | gem install sass |
| 15 | 37 | ... | ... |
test/app.js
| ... | ... | @@ -1,32 +0,0 @@ |
| 1 | -var express = require("express"); | |
| 2 | - | |
| 3 | -var app = express(); | |
| 4 | - | |
| 5 | - | |
| 6 | - // read the port from the environment, else set to 3000 | |
| 7 | - app.set("port", process.env.PORT || 3000); | |
| 8 | - app.set('view engine', 'ejs'); | |
| 9 | - | |
| 10 | -app.get('/', function (req, res) | |
| 11 | -{ | |
| 12 | - res.render('index'); | |
| 13 | -}); | |
| 14 | - | |
| 15 | -app.get('/barra.js', function (req, res) | |
| 16 | -{ | |
| 17 | - res.render('barra'); | |
| 18 | -}); | |
| 19 | - | |
| 20 | -app.get('/jquery.js', function (req, res) | |
| 21 | -{ | |
| 22 | - res.render('jquery'); | |
| 23 | -}); | |
| 24 | - | |
| 25 | -app.get('/static/opensans-bold.woff', function (req, res) | |
| 26 | -{ | |
| 27 | - res.render('opensansbold'); | |
| 28 | -}); | |
| 29 | - | |
| 30 | -// instead of starting the application here, export the app so that it can | |
| 31 | -// be loaded differently based on the use case (running the app vs testing) | |
| 32 | -module.exports = app; |
test/zombie-test.js
| ... | ... | @@ -2,34 +2,65 @@ var chai = require("chai"), plugin = require("chai-jq"); |
| 2 | 2 | chai.use(plugin); |
| 3 | 3 | |
| 4 | 4 | var expect = require("chai").expect, |
| 5 | - Browser = require("zombie"), | |
| 6 | - app = require("./app"); | |
| 5 | + Browser = require("zombie"); | |
| 7 | 6 | |
| 8 | 7 | describe("Testes de conteúdo de HTML da barra", function() { |
| 9 | - var server, browser, barraUrl, barraFonte; | |
| 10 | - barraUrl = "http://localhost:3000/"; | |
| 11 | - barraFonte = "http://localhost:3000/static/opensans-bold.woff"; | |
| 12 | - before(function() { | |
| 13 | - server = app.listen(3000); | |
| 14 | - }); | |
| 8 | + var browser, barraUrl, barraFonte; | |
| 9 | + barraUrl = "http://localhost/"; | |
| 10 | + barraFonte = "http://localhost/static/opensans-bold.woff"; | |
| 15 | 11 | |
| 16 | 12 | beforeEach(function() { |
| 17 | 13 | browser = new Browser(); |
| 18 | 14 | browser.runScripts = true; |
| 19 | 15 | }); |
| 20 | 16 | |
| 21 | - after(function() { | |
| 22 | - // depois dos testes fechar o servidor | |
| 23 | - server.close(); | |
| 24 | - }); | |
| 25 | - | |
| 26 | - it("trocar o conteúdo do #barra-brasil pelo correto", function(done) { | |
| 17 | + it("trocar o conteúdo do #barra-brasil pelo correto em pt-BR", function(done) { | |
| 18 | + if (!browser.headers) { | |
| 19 | + browser.headers = {}; | |
| 20 | + } | |
| 21 | + browser.headers['Accept-Language'] = 'pt-BR'; | |
| 27 | 22 | browser.visit(barraUrl, function() { |
| 28 | 23 | var inner_barra = browser.document.getElementById("barra-brasil"); |
| 29 | 24 | expect(inner_barra.innerHTML).to.equal("<div id=\"wrapper-barra-brasil\"><div class=\"brasil-flag\"><a href=\"http://brasil.gov.br\" class=\"link-barra\">Brasil</a></div><span class=\"acesso-info\"><a href=\"http://www.servicos.gov.br/?pk_campaign=barrabrasil&orgao=http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981\" class=\"link-barra\" id=\"barra-brasil-orgao\">Serviços</a></span><nav><ul class=\"list\"><li><a href=\"#\" id=\"menu-icon\"></a></li><li class=\"list-item first\"><a href=\"http://brasil.gov.br/barra#participe\" class=\"link-barra\">Participe</a></li><li class=\"list-item\"><a href=\"http://brasil.gov.br/barra#acesso-informacao\" class=\"link-barra\">Acesso à informação</a></li><li class=\"list-item\"><a href=\"http://www.planalto.gov.br/legislacao\" class=\"link-barra\">Legislação</a></li><li class=\"list-item last last-item\"><a href=\"http://brasil.gov.br/barra#orgaos-atuacao-canais\" class=\"link-barra\">Canais</a></li></ul></nav><a class=\"logo-vlibras\" href=\"http://www.vlibras.gov.br/\" aria-label=\"Acessível em Libras\"></a></div>"); |
| 30 | 25 | done(); |
| 31 | 26 | }); |
| 32 | 27 | }); |
| 28 | + | |
| 29 | + it("trocar o conteúdo do #barra-brasil pelo correto em en", function(done) { | |
| 30 | + if (!browser.headers) { | |
| 31 | + browser.headers = {}; | |
| 32 | + } | |
| 33 | + browser.headers['Accept-Language'] = 'en'; | |
| 34 | + browser.visit(barraUrl, function() { | |
| 35 | + var inner_barra = browser.document.getElementById("barra-brasil"); | |
| 36 | + expect(inner_barra.innerHTML).to.equal("<div id=\"wrapper-barra-brasil\"><div class=\"brasil-flag\"><a href=\"http://brasil.gov.br\" class=\"link-barra\">Brazil</a></div><span class=\"acesso-info\"><a href=\"http://www.servicos.gov.br/?pk_campaign=barrabrasil&orgao=http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981\" class=\"link-barra\" id=\"barra-brasil-orgao\">Services</a></span><nav><ul class=\"list\"><li><a href=\"#\" id=\"menu-icon\"></a></li><li class=\"list-item first\"><a href=\"http://brasil.gov.br/barra#participe\" class=\"link-barra\">Participate</a></li><li class=\"list-item\"><a href=\"http://brasil.gov.br/barra#acesso-informacao\" class=\"link-barra\">Information access</a></li><li class=\"list-item\"><a href=\"http://www.planalto.gov.br/legislacao\" class=\"link-barra\">Legislation</a></li><li class=\"list-item last last-item\"><a href=\"http://brasil.gov.br/barra#orgaos-atuacao-canais\" class=\"link-barra\">Information channels</a></li></ul></nav><a class=\"logo-vlibras\" href=\"http://www.vlibras.gov.br/\" aria-label=\"Acessible in Brazilian Sign Language\"></a></div>"); | |
| 37 | + done(); | |
| 38 | + }); | |
| 39 | + }); | |
| 40 | + | |
| 41 | + it("trocar o conteúdo do #barra-brasil pelo correto em es", function(done) { | |
| 42 | + if (!browser.headers) { | |
| 43 | + browser.headers = {}; | |
| 44 | + } | |
| 45 | + browser.headers['Accept-Language'] = 'es'; | |
| 46 | + browser.visit(barraUrl, function() { | |
| 47 | + var inner_barra = browser.document.getElementById("barra-brasil"); | |
| 48 | + expect(inner_barra.innerHTML).to.equal("<div id=\"wrapper-barra-brasil\"><div class=\"brasil-flag\"><a href=\"http://brasil.gov.br\" class=\"link-barra\">Brasil</a></div><span class=\"acesso-info\"><a href=\"http://www.servicos.gov.br/?pk_campaign=barrabrasil&orgao=http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981\" class=\"link-barra\" id=\"barra-brasil-orgao\">Servicios</a></span><nav><ul class=\"list\"><li><a href=\"#\" id=\"menu-icon\"></a></li><li class=\"list-item first\"><a href=\"http://brasil.gov.br/barra#participe\" class=\"link-barra\">Participar</a></li><li class=\"list-item\"><a href=\"http://brasil.gov.br/barra#acesso-informacao\" class=\"link-barra\">Acceso a la información</a></li><li class=\"list-item\"><a href=\"http://www.planalto.gov.br/legislacao\" class=\"link-barra\">Legislación</a></li><li class=\"list-item last last-item\"><a href=\"http://brasil.gov.br/barra#orgaos-atuacao-canais\" class=\"link-barra\">Canales de información</a></li></ul></nav><a class=\"logo-vlibras\" href=\"http://www.vlibras.gov.br/\" aria-label=\"Acesso a la Libras\"></a></div>"); | |
| 49 | + done(); | |
| 50 | + }); | |
| 51 | + }); | |
| 52 | + | |
| 53 | + it("trocar o conteúdo do #barra-brasil pelo correto em fr", function(done) { | |
| 54 | + if (!browser.headers) { | |
| 55 | + browser.headers = {}; | |
| 56 | + } | |
| 57 | + browser.headers['Accept-Language'] = 'fr'; | |
| 58 | + browser.visit(barraUrl, function() { | |
| 59 | + var inner_barra = browser.document.getElementById("barra-brasil"); | |
| 60 | + expect(inner_barra.innerHTML).to.equal("<div id=\"wrapper-barra-brasil\"><div class=\"brasil-flag\"><a href=\"http://brasil.gov.br\" class=\"link-barra\">Brésil</a></div><span class=\"acesso-info\"><a href=\"http://www.servicos.gov.br/?pk_campaign=barrabrasil&orgao=http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/2981\" class=\"link-barra\" id=\"barra-brasil-orgao\">Prestations de service</a></span><nav><ul class=\"list\"><li><a href=\"#\" id=\"menu-icon\"></a></li><li class=\"list-item first\"><a href=\"http://brasil.gov.br/barra#participe\" class=\"link-barra\">Prende part</a></li><li class=\"list-item\"><a href=\"http://brasil.gov.br/barra#acesso-informacao\" class=\"link-barra\">Accès à l'information</a></li><li class=\"list-item\"><a href=\"http://www.planalto.gov.br/legislacao\" class=\"link-barra\">Législation</a></li><li class=\"list-item last last-item\"><a href=\"http://brasil.gov.br/barra#orgaos-atuacao-canais\" class=\"link-barra\">Les canaux d'information</a></li></ul></nav><a class=\"logo-vlibras\" href=\"http://www.vlibras.gov.br/\" aria-label=\"Accessible en brésilien langue des signes\"></a></div>"); | |
| 61 | + done(); | |
| 62 | + }); | |
| 63 | + }); | |
| 33 | 64 | |
| 34 | 65 | it("trocar o conteúdo do #footer-brasil pelo correto", function(done) { |
| 35 | 66 | browser.visit(barraUrl, function() { |
| ... | ... | @@ -41,11 +72,30 @@ describe("Testes de conteúdo de HTML da barra", function() { |
| 41 | 72 | |
| 42 | 73 | it("A fonte deve estar respondendo", function(done) { |
| 43 | 74 | browser.visit(barraFonte, function() { |
| 75 | + expect(browser.response.headers._headers[3]).to.include.members(['etag']); | |
| 76 | + expect(browser.response.headers._headers[9]).to.include.members(['access-control-allow-origin', '*']); | |
| 77 | + expect(browser.response.headers._headers[11]).to.include.members(["content-type","application/x-font-woff"]); | |
| 44 | 78 | expect(browser.response.status).to.equal(200); |
| 45 | 79 | done(); |
| 46 | 80 | }); |
| 47 | 81 | }); |
| 48 | 82 | |
| 83 | + it("Cabeçalhos HTTP do barra.js devem estar ok", function(done) { | |
| 84 | + if (!browser.headers) { | |
| 85 | + browser.headers = {}; | |
| 86 | + } | |
| 87 | + browser.headers['Accept-Encoding'] = 'gzip'; | |
| 88 | + browser.visit("http://localhost/barra.js", function() { | |
| 89 | + expect(browser.response.headers._headers[6]).to.include.members(['etag']); | |
| 90 | + expect(browser.response.headers._headers[8]).to.include.members(['content-encoding', 'gzip']); | |
| 91 | + expect(browser.response.headers._headers[9]).to.include.members(['cache-control','max-age=604800']); | |
| 92 | + expect(browser.response.headers._headers[11]).to.include.members(['access-control-allow-origin', '*']); | |
| 93 | + expect(browser.response.status).to.equal(200); | |
| 94 | + done(); | |
| 95 | + }); | |
| 96 | + }); | |
| 97 | + | |
| 98 | + | |
| 49 | 99 | it("a barra deve ter o css correto para visualizacao maior que 960px"); |
| 50 | 100 | |
| 51 | 101 | it("a barra deve ter o css correto para visualização menor que 960px"); | ... | ... |
views/barra.ejs
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -<% include ../app/static/barra-brasil.js %> |
views/index.ejs
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -<% include ../app/templates/exemplo.html %> |
views/jquery.ejs
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -<% include ../app/static/jquery-2.1.3.min.js %> |
views/opensansbold.ejs
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -<% include ../app/static/opensans-bold.woff %> |