<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Priyanshu Agarwal</title>
    <description>The latest articles on DEV Community by Priyanshu Agarwal (@priyanshu).</description>
    <link>https://dev.to/priyanshu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F481274%2F58119c18-4a3a-4d0e-9bd0-9a39a60c3df8.png</url>
      <title>DEV Community: Priyanshu Agarwal</title>
      <link>https://dev.to/priyanshu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/priyanshu"/>
    <language>en</language>
    <item>
      <title>Using GitHub Actions - Publish sdist on PyPi</title>
      <dc:creator>Priyanshu Agarwal</dc:creator>
      <pubDate>Tue, 07 Dec 2021 08:49:38 +0000</pubDate>
      <link>https://dev.to/priyanshu/using-github-actions-publish-sdist-on-pypi-1fi0</link>
      <guid>https://dev.to/priyanshu/using-github-actions-publish-sdist-on-pypi-1fi0</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;How boring would it be to build a software distribution of the package and upload it to PyPi after each release? This is where this workflow comes into play, automating tedious and repetitive tasks.&lt;/p&gt;

&lt;p&gt;I created a workflow to automatically build the Python software distribution and publish it on PyPi after every release.&lt;/p&gt;

&lt;p&gt;Building wheels is very tricky and often fails due to unforeseen circumstances. This workflow is triggered only after the wheel building procedure has been successfully completed. The sdist (software distribution) can also be tested on TestPyPi before releasing the sdist to production via workflow dispatch.&lt;/p&gt;

&lt;h4&gt;
  
  
  Actions used
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;actions/checkout&lt;/li&gt;
&lt;li&gt;actions/setup-python&lt;/li&gt;
&lt;li&gt;actions/upload-artifact&lt;/li&gt;
&lt;li&gt;actions/download-artifact&lt;/li&gt;
&lt;li&gt;pypa/gh-action-pypi-publish&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Maintainer Must-Haves&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pybamm-team/PyBaMM/blob/develop/.github/workflows/build_sdist.yml"&gt;build_sdist.yml&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;This workflow is currently being utilized by &lt;a href="https://github.com/pybamm-team/PyBaMM"&gt;PyBaMM&lt;/a&gt; to build their software distribution on PyPi, which is then picked up by the web service of conda-forge, which bumps the version of PyBaMM on conda-forge automatically.&lt;/p&gt;

</description>
      <category>actionshackathon21</category>
    </item>
    <item>
      <title>Working on GitHub Actions</title>
      <dc:creator>Priyanshu Agarwal</dc:creator>
      <pubDate>Sun, 07 Feb 2021 14:34:29 +0000</pubDate>
      <link>https://dev.to/priyanshu/working-on-github-actions-2mam</link>
      <guid>https://dev.to/priyanshu/working-on-github-actions-2mam</guid>
      <description>&lt;h1&gt;
  
  
  What are GitHub Actions?
&lt;/h1&gt;

&lt;p&gt;According to GitHub:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub Actions help you automate tasks within your software development life cycle. GitHub Actions are event-driven, meaning that you can run a series of commands after a specified event has occurred. For example, every time someone creates a pull request for a repository, you can automatically run a command that executes a software testing script.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I used GitHub actions to automate checking invalid links and to run custom scripts in a repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e3MSa2AC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/39b93b1vq2xalsa0uu2s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e3MSa2AC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/39b93b1vq2xalsa0uu2s.gif" alt="cat gif"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Steps
&lt;/h1&gt;

&lt;p&gt;Create a file &lt;code&gt;checker.yml&lt;/code&gt; inside &lt;code&gt;.github/workflows&lt;/code&gt;&lt;br&gt;
I recommend checking out the &lt;a href="https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions"&gt;GitHub Documentation&lt;/a&gt; for basic syntax. &lt;/p&gt;


&lt;h1&gt;
  
  
  Using pre-defined templates
&lt;/h1&gt;

&lt;p&gt;You can use pre-defined action templates and customize inputs according to your needs. You can look for them in the &lt;a href="https://github.com/marketplace?type=actions"&gt;GitHub marketplace&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Link checker
&lt;/h2&gt;

&lt;p&gt;This workflow will check all the files in your repository for broken and invalid links and report them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;urlstechie/urlchecker-action&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I used it because I had to use the link checker in various file types like &lt;code&gt;.md&lt;/code&gt;, &lt;code&gt;.rst&lt;/code&gt;, and even &lt;code&gt;.py&lt;/code&gt;&lt;br&gt;
For custom configurations, examples, and more details, refer to the &lt;a href="https://github.com/urlstechie/urlchecker-action"&gt;repository&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Check URLs&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Run everyday at 3 am UTC &lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;0 3 * * *&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;urlchecks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;URLs-checker&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;urlstechie/urlchecker-action@master&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# A comma-separated list of file types to cover in the URL checks&lt;/span&gt;
        &lt;span class="na"&gt;file_types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.rst,.md,.py,.ipynb&lt;/span&gt;

        &lt;span class="c1"&gt;# Choose whether to include a file with no URLs in the prints.&lt;/span&gt;
        &lt;span class="na"&gt;print_all&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;false&lt;/span&gt;

        &lt;span class="c1"&gt;# Timeout in 10 seconds if url is not reached&lt;/span&gt;
        &lt;span class="na"&gt;timeout&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;

        &lt;span class="c1"&gt;# How many times to retry a failed request (each is logged, defaults to 1)&lt;/span&gt;
        &lt;span class="na"&gt;retry_count&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gaurav-nelson/markdown-link-check&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are looking to work with just a single file type, then you should go with this one.&lt;br&gt;
For custom configurations, examples, and more details, refer to the &lt;a href="https://github.com/gaurav-nelson/github-action-markdown-link-check"&gt;repository&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Check invalid links&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Run everyday at 3 am UTC &lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;0 3 * * *&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;markdown-link-check&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@master&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run link check&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gaurav-nelson/github-action-markdown-link-check@v1&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;use-quiet-mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;yes'&lt;/span&gt;
        &lt;span class="na"&gt;use-verbose-mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;yes'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Link to my pull request &lt;a href="https://github.com/pybamm-team/PyBaMM/pull/1347"&gt;pybamm-team/PyBaMM#1347&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Run custom python scripts and make a pull request
&lt;/h1&gt;

&lt;p&gt;You can also run custom python scripts using workflows and can add a feature to automatically make a pull request to the repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run custom scripts&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Add paths only if you want to run the workflow when a file is modified. &lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;folder/filename.py'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;strategy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="c1"&gt;# List all the python versions to test it with &lt;/span&gt;
      &lt;span class="na"&gt;matrix&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;python-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;3.7&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;3.8&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Set up Python ${{ matrix.python-version }}&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-python@v2&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;python-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ matrix.python-version }}&lt;/span&gt;
      &lt;span class="c1"&gt;# Add all the required dependencies&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install dependencies&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;python -m pip install --upgrade pip&lt;/span&gt;
        &lt;span class="s"&gt;pip install flake8 pytest&lt;/span&gt;
        &lt;span class="s"&gt;if [ -f requirements.txt ]; then pip install -r requirements.txt; fi&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run script&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python script.py&lt;/span&gt;
      &lt;span class="c1"&gt;# Automatically create a pull request&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Create Pull Request&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peter-evans/create-pull-request@v3&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;delete-branch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
        &lt;span class="na"&gt;branch-suffix&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;short-commit-hash&lt;/span&gt;
        &lt;span class="na"&gt;commit-message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;type your commit message&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;type your title here&lt;/span&gt;
        &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
            &lt;span class="s"&gt;Auto-generated pull request&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Link to my pull request &lt;a href="https://github.com/pybamm-team/PyBaMM/pull/1371"&gt;pybamm-team/PyBaMM#1371&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  How to test them?
&lt;/h1&gt;

&lt;p&gt;There are mainly two ways to test workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Locally&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To test them locally use &lt;a href="https://github.com/nektos/act"&gt;nektos/act&lt;/a&gt;, which is free and open source.&lt;br&gt;
Look at how to &lt;a href="https://github.com/nektos/act#installation"&gt;install it&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MRCxx827--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9l5no6eukzjhhmqjrcxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MRCxx827--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9l5no6eukzjhhmqjrcxq.png" alt="code snippet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Note that GitHub actions currently do not support colors and you may see different results there.
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pushing it on the fork&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another way to do it is by pushing all your files to your fork. It is recommended to create a new branch to test everything in it so that it does not interfere with your current branches.&lt;/p&gt;

&lt;h4&gt;
  
  
  Procedure
&lt;/h4&gt;

&lt;p&gt;Run these commands in your terminal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git checkout -b branchname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add workflow.yml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit -m "workflow test-1"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push origin branchname&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then go to your fork and look for &lt;code&gt;Actions&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--73vK6aF2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9y664npdj9tzn5rp2njx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--73vK6aF2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9y664npdj9tzn5rp2njx.PNG" alt="github action"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This is just a very small use case of what Github Actions can do. You might have some other way of doing the same thing too.&lt;br&gt;
If you want to discuss more on this feel free to comment below.&lt;/p&gt;

</description>
      <category>github</category>
      <category>automation</category>
      <category>linkchecker</category>
      <category>scripts</category>
    </item>
  </channel>
</rss>
