Dan has been a long-time contributor to Travis CI, including not only our Go
support, but also features within our cookbooks, as well as how we originally
supported uploading artifacts after a build. We're very honored to have him
not only help us ship this feature, but also write this blog post, which I'm
sure you'll all enjoy. ~ Josh Kalderimis
If the builds you're running on Travis CI produces artifacts, you'll no doubt
be thrilled to hear that we want to make saving these artifacts super easy for
The first supported tool for doing this was
travis-artifacts, a handy
gem-installable tool for shipping artifacts to Amazon S3. This was a great
start, and solved the immediate need, but we knew we could do better.
Among the problems we hoped to address were the lengthy installation process of
runtime dependencies and the lack of first-class support in one's
What we ended up building comes in two parts. First, there is a binary
artifacts. This binary may be downloaded and used directly
by following the installation
In addition to this binary, an
artifacts addon was tacked onto
travis-build so that you can use
it via your
.travis.yml. More details are available in the
docs, for example, all
you need is to add the following to your
And you should then see at the bottom of your log:
The above screenshot is from
You can also set
ARTIFACTS_SECRET environment variables
via the repository settings in order to keep your
.travis.yml more slim, for
Setting such environment variables would reduce the valid addons configuration
to the following:
By default, any files found using
git ls-files -o within your repository
directory will be uploaded to S3. If you want to upload a different set of
files, you can specify these using the following config:
# arbitrary shell commands are supported, but the output should be
# converted to a ':'-delimited string.
- $(ls /var/log/*.log | tr "\n" ":")
# singular paths work fine, too
We have some great improvements in the works to make artifacts even better, but
consider this the first of many.
We're looking forward to hearing what you think!
I used to be a very chaotic worker, embracing the unpredictable nature of
every working day, piling things on my plate, jumping on emerging problems,
tasks or questions right away.
About a year ago, I grew frustrated with my personal lack of progress and by
feeling overworked because I started my day chaotic and because it had an open
end, sometimes having me sit in front of my computer from 9:30 in the morning
until 23:00 in the evening.
Towards the end of the year the frustration grew into unhappiness, which made me
realize that I need to change my habits, to restore a certain work life balance
to become a happier person again.
Here are the steps that I've taken since then that not only restored my personal
happiness, they've helped me be more productive.
Plan your day, plan your week
Without the slightest idea what I'd do on any day, without a plan, I found
myself unhappy because I didn't feel like I accomplished anything. I may very
well have done and shipped things during any particular day, but it was usually
so busy that I forgot what it was by the end of the day.
Now I sit down every Monday to think about what I want to achieve that week, and
every day I decide on three things I want to get done that day.
Having a list of these helps giving focus to anything you're doing that day or
week. If you're doing something that's not on your list, that's not necessarily
a bad thing, but it should give you more insight for planning the following day.
Keep a notebook
The written word is powerful, even more so when you write something down with
your own hands. Whenever something pops up in your head while you're focusing on
a task, write it down.
When you sit together with someone to discuss something, write down the results.
You can use your computer for these things too, but the nature of having lots of
application to call for your attention even while you're typing has the
potential of distracting you from dumping your thoughts or, even worse, away
from the people you're meeting and discussing with.
A notebook literally keeps people on the same page, it's the least possible
distraction, and whenever you're discussing a relevant topic with someone,
writing down your takeaways shows that you care.
Read every day
I like devouring
books. I don't
read a lot, but I try to finish a book every two weeks or so. I find great
inspiration in them for life, work, productivity and for my own writing.
Throughout the day, I found there's less and less time to focus on reading until
the evening, when being tired quickly overwhelmes my ability to focus on a book.
So I implemented a habit to read first thing in the morning. Right after I get
up, I make myself a cup of coffee, grab my Kindle and read for at least 30
minutes, ideally 45.
This made a big difference in my reading habits, allowing me to read some 20
pages every day, helping with my reading addiction.
Block out a big chunk of time in the morning
I do my best work in the morning hours, until around noon. Distraction increases
as more people wake up, come online, support tickets come in and general chatter
in our team chat room increases.
Plus, I know I'm not a night owl and that working late hurts my health and my
productivity the following days.
I used to check email first thing in the morning and I felt drained after going
through them, almost unable to start focusing on an important task afterwards.
Now I do my important, creative work in the morning. Whether that's writing a
blog post (like this one, written before 10:00 on a Monday morning), cranking
out code, or thinking through a problem, I tackle those first thing in the
I've gone as far as making this time a block in my calendar, that's reserved
just for myself. That means I can't get invites for this block, and people see
that I'm busy. Most things that call for an appointment can wait until noon or
the afternoon hours.
Ideally, during this block of time, there's no email contact, no Twitter or
Facebook open, even instant messaging and team chat is closed to reduce
distractions. As a bonus, shut off your phone (gasp).
Process email twice a day, only at specific times
A mentioned above, email is my personal impediment of being productive. Leaving
an email client open is a continuous trigger of stress but also excitement
whenever you get a new email.
Initially I only allowed myself to read emails after noon, 12:00 being the first
time I was able to open it. I still found myself leaving my email open and
continuously checking it in the afternoon hours, affecting my ability to focus.
I've adjusted this to give myself two timeslots throughout the day explicitly
meant to process and empty out my inbox. They're marked in my calendar with a
reminder, giving me more ample time to focus on other things but also specific
times to focus solely on email.
Go for a walk or a bike ride
When you sit in front of your computer for 12 hours every day, it's not just
creativity that's suffering, it's your body's health too.
At some point, while taking a walk, I realized that after walking for a few
minutes, my mind frees up from what's kept it busy before, starting to let
random thoughts flow more freely.
I have a daily habit of going outside for either a walk or a bike ride. I don't
count it as exercise, but more as a means to free up my brain to focus on the
important things again when I'm back.
Disable Push Notifications
Push notifications are really push interruptions, adding a pile of buzzing noise
to your already ever-increasing pile of distractions. Apps scream for your
attention, of which you already have little to spare.
Most of these notifications are irrelevant to your daily work. They're friends
liking your photos, sending you messages, uploading their own photos, or sending
you food pictures of questionable quality.
Ask yourself which ones are really relevant to your day to day. Do you need to
respond to a new chat message immediately? Do you need to pick up the phone
while you're busy or conversing with someone just to see what's been happening?
Your addictive mind tells you that you do. Your rational mind tells you that
Try to listen to the rational part and disable all push notifications except
for the real essentials. For me the latter is only new iMessages (of which I
don't get a lot) and production alerts. When you're on call, every
additional push notifications from another app adds to the noise in which a
real production issue can easily drown.
Better yet, turn on "Do Not Disturb" mode.
Write a journal
For the last two years, I've been writing a journal of my every day. Sometimes
long posts, sometimes only short glimpses into what I've done on any particular
day. Since then it's evolved into something where I keep notes on my daily
routines, how I'd like to improve them, links to articles with my thoughts added
or notes on books and complete reviews on them too.
This has helped me realize and improve a few things. First, actively thinking
about what I've done on a particular day helps me realize if I've done anything
at all, what I haven't done and what I can do better the next day or the next
On the flip side, it's a creative outlet. I enjoy writing a lot and have also
found that writing about a problem that's on my mind helps me form my thoughts
and opinions on it, whether it's related to my personal or work life, or if it's
about our company, the team and how we work. All that ends up in my journal.
I've been using Day One for my journal with great joy.
Close all browser tabs at the end of the day
Don't you just hate it when you have a ton of tabs open in your browser all the
time with things that you want to read at some distant point in the future? Me
too, so I never let that happen in the first place.
My browser gets closed before I shut my computer, and so do all other apps that
would immediately call for my attention the next day, team chat, Skype, instant
When I want to read something later, it goes onto a separate list in my
End the day at a reasonable hour
Working from home, the line between life and work is very blurry. I found this
to add to my personal stress levels and to affect my ability to focus on a task.
So I started implementing official end of day hours. No more computering,
internetting or work-related things after that, only family and my personal
I started setting my end of the day at 18:30.
These constraints have more benefits than reducing stress. When you set yourself
a specific time window when you can do your work, you aim for using that time in
the best and most effective ways you can find. It forces you to adjust your work
behaviour during the day to get the most out of the hours you have.
How do you force yourself to end the day at the same time every day? Easy, set a
calendar entry with an alert 15-30 minutes before so you can wrap up what you're
currently working on.
Bonus: Take a real vacation
A few weeks ago I went on a trip to France with my family for three weeks.
Initially I thought I'd work a few hours a day to make up for the time I'm away.
Over time I figured that way it won't be a real holiday. My mind will be busy
with work things and unable to fully rest and recover.
So I instead decided to be offline for the entire time, not reading emails, not
reading Twitter, posting nothing on any social sites.
Instead I focused my time on my family, on the ocean and reading lots of books.
Thoughts on work-related topics came up every now and then, but I tucked them
away in my journal to clear my head.
A vacation isn't a real vacation when you're still in contact with your work.
You need to switch off completely to fully recover. It's something that's so
hard to imagine these days, yet it's so good for body and your mind.
Structure and routine increase productivity and happiness
Structuring your day into chunks can be a scary and unfamiliar thing to do,
especially for a remote worker where your team is spread out across multiple
timezones. But it pays off manifold for both your own productivity and
Increasing your productivity and happiness is a gradual and a learning
process. Just like we're flexible in the tools and processes we pick to get our
work done, personal productivity should be subject to review regularly.