loading...
Cover image for Automate your DEV Posts using GitHub Actions

Automate your DEV Posts using GitHub Actions

beeman profile image beeman 🐝 Originally published at beeman.dev ・3 min read

Over the last few days I've been working on getting my website online. The most important part of my site is the blog, and my idea is that I cross-post1 my content between my website and DEV.

DEV makes this super easy as it integrates with Stackbit. Within a few clicks I was up and running with a fresh GitHub repo containing a Gatsby app connected to Netlify for building and hosting.

Alt Text

The build on Netlify happens in one of two occasions: when my content on DEV updates or when the GitHub repo updates.

With this setup in place I moved a lot of potential obstacles out of the way, there is very little for me to worry about. Most importantly though, I can manage a big part of my site using Git, which I love!

After declaring my love to this amazingly easy to use stack on Twitter, I got a reply from Maxime. He told me about a tool he created to publish your blogs from GitHub to DEV, which means my I can manage my complete site using Git, even better!

In his post you can find the all the steps you need to set this up. The process is pretty straightforward and very well described. In the guide he explains how to use Travis CI to set up automatic publishing, but I'd rather use GitHub Actions.

In order to get started you need to finish the 2 steps of Maxim's tutorial then come back here and continue below. I'll wait.

1. Set the DEV API Token in the repo settings.

Navigate to the Settings page of the repo and select Secrets.

Click New Secret and set the name to DEV_TO_GIT_TOKEN and paste the DEV API key in the value field, then click Add Secret.

Alt Text

2. Create the GitHub Actions Workflow file.

Create the file .github/workflows/build.yml and add this content:

3. That's it!

After your next push, GitHub picks up the workflow and starts executing it. You can follow the process in the Actions tab.

Conclusion

Maxim's tool is an amazing addition to my publishing setup, which consists of a repo for my site and another for my content. I'll probably merge them at some point but at this moment I have bigger fish to fry.

I have created a small helper script that syncs content from DEV back my local repo, so I now have a full sync. This comes in handy after creating a new draft on DEV and allows you to make changes to the blog through their UI too.

I'm considering to wrap the syncing up in a tool that I can just run in the background while publishing, and I'd love to have a local preview of the blog that I'm writing so stay tuned for more!

Thanks!

Thanks for reading my post! In case you have any questions, feel free to leave a comment on DEV or send me a message on Twitter!

Happy coding!

Cheers, beeman 🐝


  1. Cross-posting is considered bad for your SEO score. To address this issue, DEV conveniently supports the canonical_url property. Another reason to ❀️ DEV! ↩

Discussion

pic
Editor guide
Collapse
devinshoemaker profile image
Devin Shoemaker

Nice write up! I've enjoyed publishing to dev.to like this as well, but it's nice to get my workflow onto GitHub Actions. Today I was thinking of creating a dev-to-git Nx plugin to help easily set this up, generate new blog articles, and generate a GitHub Actions config. Do you mind if I use your workflow config for this?

Collapse
beeman profile image
beeman 🐝 Author

That sounds awesome! Please, feel free to use this config. Let me know if you want some help. I can also share the script I used to pull in the items.

Collapse
devinshoemaker profile image
Devin Shoemaker

Sure, why not!

Collapse
moghwan profile image
Marwane

worked like a charme, thanks! just one hint in your github action I changed "main" branch name to "master" since it's the default repo branche :D

Collapse
bhaidar profile image
Bilal Haidar

Hey @beeman , you push your new blog post on GitHub, then running the GitHub Actions Workflow, the post will be mirrored on DEV too?

Collapse
beeman profile image
beeman 🐝 Author

Hey @bhaidar , yes dev-to-git publishes any changes to DEV, which in turn triggers my website redeploy.

Collapse
toonarmycaptain profile image
toonarmycaptain

Nice. Any progress on the syncing tool?