Skip to content

Instantly share code, notes, and snippets.

View pomber's full-sized avatar
🧭
Building @code-hike

Rodrigo Pombo pomber

🧭
Building @code-hike
View GitHub Profile
@pomber
pomber / .travis.yml
Created March 30, 2017 17:03
Add docker, gcloud and kubectl to Travis
cache:
directories:
- "$HOME/google-cloud-sdk/"
services:
- docker
before_deploy:
- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf $HOME/google-cloud-sdk; export CLOUDSDK_CORE_DISABLE_PROMPTS=1; curl https://sdk.cloud.google.com | bash; fi
- source /home/travis/google-cloud-sdk/path.bash.inc
- gcloud --quiet version
- gcloud --quiet components update
@pomber
pomber / .travis.yml
Created March 30, 2017 17:20
Full Travis config
sudo: false
language: node_js
node_js:
- "node"
cache:
yarn: true
directories:
- "$HOME/google-cloud-sdk/"
services:
- docker
sudo: false
language: node_js
node_js:
- "node"
cache:
yarn: true
directories:
- "$HOME/google-cloud-sdk/"
services:
- docker
@pomber
pomber / deploy-prod.sh
Created March 30, 2017 18:31
Build and push to GCR
#!/bin/bash
set -e
docker build -t gcr.io/${PROJECT_PROD}/${NGINX_IMAGE}:$TRAVIS_COMMIT -f docker/nginx.dockerfile .
docker build -t gcr.io/${PROJECT_PROD}/${NODE_IMAGE}:$TRAVIS_COMMIT -f docker/node.dockerfile .
echo $GCLOUD_SERVICE_KEY_TEST | base64 --decode -i > ${HOME}/gcloud-service-key.json
gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
@pomber
pomber / sanata.yaml
Last active March 30, 2017 21:24
Kubernetes resources
apiVersion: v1
kind: Secret
metadata:
name: node-secret
type: Opaque
data:
twitter-consumer-key: "output from [echo -n "your key" | base64]"
twitter-consumer-secret: "output from [echo -n "your secret" | base64]"
mongo-url: "output from [echo -n "mongodb://mongo:27017/sanata" | base64]"
---
@pomber
pomber / deploy-prod.sh
Created March 30, 2017 20:21
Full deploy script
#!/bin/bash
set -e
docker build -t gcr.io/${PROJECT_PROD}/${NGINX_IMAGE}:$TRAVIS_COMMIT -f docker/nginx.dockerfile .
docker build -t gcr.io/${PROJECT_PROD}/${NODE_IMAGE}:$TRAVIS_COMMIT -f docker/node.dockerfile .
echo $GCLOUD_SERVICE_KEY_TEST | base64 --decode -i > ${HOME}/gcloud-service-key.json
gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
@pomber
pomber / .travis.yml
Last active April 13, 2017 18:04
Conditional deploy
deploy:
- provider: script
script: ./deploy-prod.sh
on:
all_branches: true
condition: $TRAVIS_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+
- provider: script
script: ./deploy-test.sh
on:
branch: master
@pomber
pomber / mono.js
Created April 20, 2017 20:38
Two big functions
export function createElement(type, config, ...args) {
const props = Object.assign({}, config);
if (args.length) {
props.children = [].concat(...args);
}
return { type, props };
}
export function render(element, container) {
const instance = new DomComponent(element);
@pomber
pomber / micro.js
Created April 20, 2017 20:39
Several small functions
export function createElement(type, config, ...args) {
const props = Object.assign({}, config);
if (args.length) {
props.children = [].concat(...args);
}
return { type, props };
}
export function render(element, container) {
const instance = new DomComponent(element);
function render(rootDom, element) {
const { type, props } = element;
const dom = document.createElement(type);
Object.keys(props).filter(isAttribute).forEach(name => {
dom[name] = props[name];
});
const children = props.children || [];
children.forEach(childElement => render(dom, childElement));
rootDom.appendChild(dom);
}