Skip to content

Instantly share code, notes, and snippets.

View ThabetAmer's full-sized avatar
🎯
In the search for a new challenge!

Thabet Amer ThabetAmer

🎯
In the search for a new challenge!
View GitHub Profile
@ThabetAmer
ThabetAmer / get-envvars.groovy
Last active January 18, 2020 08:02
Groovy Function for Jenkins pipelines
#!/usr/bin/env groovy
/**
* Reads environment variables from a property file, and loads them into Jenkins ENV
* @author thabet.amer@gmail.com
* @since Jenkins 2.204.1
* @param String path
* @return String array
*
* Example property file:
@ThabetAmer
ThabetAmer / get-jobs.groovy
Created January 18, 2020 08:03
Groovy/Jenkins function to list all enabled Jenkins jobs by name.
#!/usr/bin/env groovy
/**
* Lists all enabled Jenkins jobs by name.
* @author thabet.amer@gmail.com
* @since Jenkins 2.204.1
* @param Bool includeDisabled to include also disabled jobs, default false (No).
* @return String array of jenkins jobs names
*
*/
@ThabetAmer
ThabetAmer / get-emoji.groovy
Created January 18, 2020 08:07
Jenkins Groovy function to return an emoji from a pool based on the build status, can be used with Slack notifications
#!/usr/bin/env groovy
/**
* Returns an emoji from a pool based on the build status, can be used with Slack notifications
* @author thabet.amer@gmail.com
* @since Jenkins 2.204.1
* @param String status default 'success'
* @return String emoji
*
*/
@ThabetAmer
ThabetAmer / check-url.groovy
Created January 18, 2020 08:08
Jenkins Groovy function to check URL availability
#!/usr/bin/env groovy
/**
* Checks URL availability via curl
* @author thabet.amer@gmail.com
* @since Jenkins 2.204.1
* @param String url
* @return String Zero if succeeded, error if not.
*
*/
@ThabetAmer
ThabetAmer / jekyll-serve.sh
Created January 26, 2020 09:17
Jekyll serve via Docker
# installs gems then serves web on http://0.0.0.0:4000
#
## you may want to exclude vendor/bundle in _config.xml
#
## For Github pages, refer to https://pages.github.com/versions/ to find supported Jekyll version
## as in your Gemfile.
#
export JEKYLL_VERSION=3.8.5
docker run --rm -it \
-v "$(pwd):/srv/jekyll" \
@ThabetAmer
ThabetAmer / texlive-generate.sh
Created January 28, 2020 17:27
Compile Latex files using docker
#!/bin/bash
# Either to compile single file passed in args
# OR to go over all .tex files in directory - in batch mode.
# compile the tex file in arguments
[ -f "$1" ] && { docker run -i -w "/doc" -v "$PWD":/doc thomasweise/texlive xelatex -interaction=nonstopmode -halt-on-error $1; exit 0; }
# batch mode - compile all tex files
docker run -i -w "/doc" -v "$PWD":/doc thomasweise/texlive bash -c 'for file in $(find . -maxdepth 1 -name "*.tex"); do echo "Generating pdf for $file ..." && xelatex -interaction=batchmode -halt-on-error $file; done'
@ThabetAmer
ThabetAmer / jenkins-docker.sh
Last active January 30, 2020 08:12
Runs Jenkins in Docker
#! /bin/bash
# Runs Jnekins in Docker container.
# TODO: auto add plugins and default configs.
# Logs customization from https://hub.docker.com/_/jenkins/
mkdir data
cat > data/log.properties <<EOF
handlers=java.util.logging.ConsoleHandler
jenkins.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
@ThabetAmer
ThabetAmer / create-s3-bucket.sh
Created February 3, 2020 07:42
Creating AWS S3 Bucket with bash and awscli
AWS_BUCKET="xyz"
AWS_REGION="eu-central-1"
AWS_ID="11111111111"
AWS_USER="s3-user"
# TODO: review access
cat > policy.json << EOL
{
"Version": "2012-10-17",
"Id": "Policy1554206237047",
@ThabetAmer
ThabetAmer / get-ec2-ip.sh
Created February 3, 2020 07:47
Returns host IP for AWS EC2
#!/bin/bash
# Returns host IP for AWS EC2
curl http://169.254.169.254/latest/meta-data/public-ipv4
@ThabetAmer
ThabetAmer / Docker-dashboard.json
Created February 5, 2020 15:06
Grafana Docker Containers Dashboard
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",