Skip to content

Instantly share code, notes, and snippets.

View jan-koch's full-sized avatar

Jan Koch jan-koch

View GitHub Profile
@jan-koch
jan-koch / export_database_with_replace.sh
Created June 8, 2019 07:20
Bash script to export a database from a WordPress container and perform a search/replace using the UNIX command "sed". Script is based on https://hub.docker.com/r/jankoch/wordpress.
#! /bin/bash
CONTAINER=$1
SEARCH=$2
REPLACE=$3
# Dump the file
DUMP=$(docker exec $CONTAINER wp db export --add-drop-table --porcelain)
@jan-koch
jan-koch / Jenkinsfile
Created October 9, 2019 05:39
An example Jenkinsfile that stops deployment if your method complexity is above 20, based on the static code analysis of PHPloc.
pipeline {
agent any
tools {
ant 'ant'
}
// Pull the repo first.
stages {
stage( 'Checkout Repo' ) {
@jan-koch
jan-koch / phploy.ini
Created September 12, 2019 05:11
Module 2. Example of a phploy.ini file you can customize for your own needs. This file goes into the root of the folder you want to automatically deploy.
; This is a sample phploy.ini file. You can specify as many
; servers as you need and use normal or quickmode configuration.
;
; NOTE: If a value in the .ini file contains any non-alphanumeric
; characters it needs to be enclosed in double-quotes (").
; The server names in the brackets need to match the server names
; you reference in your Jenkinsfile.
[production]
@jan-koch
jan-koch / Jenkinsfile
Last active September 12, 2019 05:08
Jenkinsfile for automated deployment with Github and PHPloy
pipeline {
agent any
// Pull the repo first.
stages {
stage( 'Checkout Repo' ) {
steps {
checkout scm
}
}
stage( 'Deploy' ) {
@jan-koch
jan-koch / commands.sh
Created September 12, 2019 05:04
Commands for Module 2. These commands need to be executed in the folder you want to automatically deploy.
// Install PHPloy in your project
composer require "banago/phploy"
// Initialize PHPloy in the project folder
phploy --init
@jan-koch
jan-koch / Commands for Module 3
Last active September 11, 2019 11:22
Commands to install Jenkins on a Ubuntu 18.04 droplet in Digital Ocean. (Run as root)
// First add the repository key to the system.
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
// Append the Debian repository to your server's sources.list
sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
// Update your package index
apt update
// Run an upgrade
@jan-koch
jan-koch / docker-compose.yml
Created June 8, 2019 13:43
Example of a docker-compose file to create a local WordPress development setup with Docker.
version: '3.2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: on-failure
environment:
# Grab this data from wp-config.php
# TODO: Update DB_HOST in wp-config.php to "db:port"
@jan-koch
jan-koch / git-create-repo.sh
Last active May 24, 2019 13:06
A simple bash script to create a repository from the console. Be sure to replace "USERNAME" with your Github user name. This script utilizes nodegh.io.
#! /usr/bin/bash
NAME=$1
TYPE=$2
echo "Creating the repository"
gh re --browser false --new "$NAME" --type "$TYPE"
mkdir "$NAME"
cd "$NAME"
@jan-koch
jan-koch / git-create-repo.sh
Created May 22, 2019 06:16
A simple bash script to create a repository from the console.
#! /usr/bin/bash
NAME=$1
TYPE=$2
echo "Creating the repository"
gh re --browser false --new "$NAME" --type "$TYPE"
mkdir "$NAME"
cd "$NAME"
@jan-koch
jan-koch / sticky-menu.js
Created March 5, 2019 05:46
Small JavaScript snippet to make the Genesis site header stick to the top when scrolling down.
jQuery(function ($) {
$(window).scroll(function () {
var yPos = ($(window).scrollTop());
if (yPos > 200) { // show sticky menu after screen has scrolled down 200px from the top.
// add a custom class to the site header for custom styling.
$(".site-header").addClass("is-sticky");
// if you feel brave, switch logos (e.g. to match different background colors).
$("img.custom-logo").attr("src", "http://localhost/wp-content/path/to/sticky-logo.svg");
} else {