Skip to content

Instantly share code, notes, and snippets.

Ryan Wilson-Perkin ryanwilsonperkin

View GitHub Profile
@ryanwilsonperkin
ryanwilsonperkin / Dockerfile
Created Mar 12, 2019
Comparing the use of apt-get vs apt-fast for installing packages in Debian
View Dockerfile
# A standard Debian container extended with apt-fast (https://github.com/ilikenwf/apt-fast/)
FROM debian
LABEL maintainer="rwilsonperkin@waveapps.com"
# Install gnupg to allow apt-key verification, time to allow profiling
RUN apt-get update
RUN apt-get install -y gnupg time
# Set up PPA for apt-fast
RUN echo deb http://ppa.launchpad.net/apt-fast/stable/ubuntu bionic main >> /etc/apt/sources.list.d/apt-fast.list \
@ryanwilsonperkin
ryanwilsonperkin / flaky.py
Last active Feb 26, 2019
Fetch a list of flaky tests form a CircleCI project
View flaky.py
#!/usr/local/bin/python3
"""
@author Ryan Wilson-Perkin
Fetch a list of flaky tests from a CircleCI project.
Searches the last 30 builds that have failed on the master branch, downloads any
junit.xml artifacts it finds for them, and reports the tests that have failed.
Branch name, test results file, number of builds, and number of results are all
@ryanwilsonperkin
ryanwilsonperkin / commits.py
Created Feb 26, 2019
Count all the lines I've ever changed on GitHub
View commits.py
#!/usr/local/bin/python3
"""
Count all the lines I've ever changed on GitHub
Setup:
pip install requests tqdm GitPython
Usage:
./commits.py
"""
@ryanwilsonperkin
ryanwilsonperkin / .dockerignore
Created Oct 29, 2018
convox start does not respect .dockerignore for code sync
@ryanwilsonperkin
ryanwilsonperkin / component.js
Last active Aug 14, 2018
A HOC proposal for injecting tracking of events.
View component.js
import React from 'react';
import withTracking from 'withTracking';
export class MyLink extends React.Component {
static propTypes = {
text: PropTypes.string,
href: PropTypes.string,
track: PropTypes.func,
};
@ryanwilsonperkin
ryanwilsonperkin / update.py
Created Apr 6, 2018
Update relative imports in JS files to be absolute based on current path
View update.py
import os
import re
import sys
ROOT_DIR = 'project-name'
PATTERN = re.compile(
"""(?P<prefix>.*from *['"])"""
"""(?P<path>\..*)"""
"""(?P<suffix>['"].*)"""
)
@ryanwilsonperkin
ryanwilsonperkin / coredump
Created Mar 14, 2018
Debugging npm failure on Alpine Linux on EC2 C5 instance
View coredump
Program terminated with signal SIGSEGV, Segmentation fault.
warning: Unexpected size of section `.reg-xstate/26' in core file.
#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29
29 src/thread/x86_64/syscall_cp.s: No such file or directory.
[Current thread is 1 (LWP 26)]
(gdb) bt
#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29
#1 0x00007fd6161eecd8 in __syscall_cp_c (nr=202, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>,
z=0) at src/thread/pthread_cancel.c:35
@ryanwilsonperkin
ryanwilsonperkin / example_public.py
Last active Mar 11, 2018
pipenv-test-public-package
View example_public.py
import sys
sys.stdout.write('This is a public package\n')
@ryanwilsonperkin
ryanwilsonperkin / example_private.py
Last active Mar 11, 2018
pipenv-test-private-package
View example_private.py
import sys
sys.stdout.write('This is a private package\n')
@ryanwilsonperkin
ryanwilsonperkin / create_test_list.py
Created Mar 5, 2018
Reads Xunit XML files and prints the (sorted) test names to stdout.
View create_test_list.py
#!/usr/local/bin/python
"""
Reads Xunit XML files and prints the (sorted) test names to stdout.
usage: python create_test_list.py file [file...]
"""
import sys
import xml.etree.ElementTree as ET
def xmlToList(filename):
You can’t perform that action at this time.