Giter Site home page Giter Site logo

actionsflow-action's Introduction

Project logo

Actionsflow

Actionsflow npm version npm Docker Pulls Build codecov GitHub Issues GitHub Pull Requests GitHub stars License


The free IFTTT/Zapier alternative for developers to automate their workflows based on GitHub actions, option to run self-hosted without GitHub as well


๐Ÿ“ Table of Contents

๐Ÿ˜ About

Actionsflow helps you automate workflows - it's a free IFTTT/Zapier alternative for developers. With Actionsflow you can connect your favorite apps, data, and APIs, receive notifications of actions as they occur, sync files, collect data, and more. We implemented it based on Github actions, and you use a YAML file to build your workflows. The configuration format is the same as Github actions, which makes it easy for you to get going if you've explored Github actions before. You can also use any Github actions as your job's steps.

You can learn more about the core concepts of Actionsflow here.

If you want a lighter, simpler workflow that doesn't rely on Github Actions, consider Denoflow, another workflow tool made by me, based on Deno with YAML , you can try it at an online playground

๐Ÿ”ฅ Features

๐ŸŽ“ Documentation

Full documentation for Actionsflow lives on the website.

You can also view it on Github if you prefer.

๐Ÿ‘€ How Actionsflow works

Actionsflow uses Github Actions' repository_dispatch event and scheduled event every 5 minutes to run Actionsflow triggers. Those triggers generate result items, which are cached and deduplicated, generating a standard Github actions workflow file with the trigger result. Finally, the workflows are executed using act (a tool for running GitHub Actions locally).

To learn more about how Actionsflow works, please see Core Concepts of Actionsflow.

๐Ÿ Getting Started

For self-hosted version please see here

  1. Create a public Github repository by using this link.

    A typical Actionsflow repository structure looks like this:

    โ”œโ”€โ”€ .github
    โ”‚   โ””โ”€โ”€ workflows
    โ”‚       โ””โ”€โ”€ actionsflow.yml
    โ”œโ”€โ”€ .gitignore
    โ”œโ”€โ”€ README.md
    โ””โ”€โ”€ workflows
    โ”‚   โ””โ”€โ”€ rss.yml
    โ”‚   โ””โ”€โ”€ webhook.yml
    โ””โ”€โ”€ package.json
  2. Uncomment .github/workflows/actionsflow.yml schedule event

    on:
      schedule:
        - cron: "*/15 * * * *"

    Note: To prevent abuse, by default, the schedule is commented, please modify the schedule time according to your own needs, the default is once every 15 minutes. Learn more about schedule event, please see here

  3. Create your workflow files inside the workflows directory

    A typical workflow file rss.yml looks like this:

    on:
      rss:
        url: https://hnrss.org/newest?points=300&count=3
    jobs:
      request:
        name: Make a HTTP Request
        runs-on: ubuntu-latest
        steps:
          - name: Make a HTTP Request
            uses: actionsflow/axios@v1
            with:
              url: https://hookb.in/VGPzxoWbdjtE22bwznzE
              method: POST
              body: |
                {
                  "link":"${{ on.rss.outputs.link }}", 
                  "title": "${{ on.rss.outputs.title }}",
                  "content":"<<<${{ on.rss.outputs.contentSnippet }}>>>"
                }

    For more information about the Actionsflow workflow file, see the Actionsflow workflow reference.

    You can find examples and inspiration on the Trigger List and on Awesome Actionsflow Workflows.

  4. Commit and push your updates to Github

Pushing to Github makes Actionsflow run the workflows you defined. You can view logs at your repository's actions tab on Github.

For more information about getting up and running, see Getting Started.

๐ŸŽ“ Learn More

Full documentation for Actionsflow lives on the website.

๐Ÿ‘ How to Contribute

Whether you're helping us fix bugs, improve the docs, or spread the word, we'd love to have you as part of the Actionsflow community! ๐Ÿ’ช๐Ÿ’œ

Check out our Contributing Guide for ideas on contributing and setup steps for getting our repositories up and running on your local machine.

โœ‹ Authors

See also the list of contributors who participated in this project.

๐Ÿ“ License

Licensed under the MIT License.

actionsflow-action's People

Contributors

github-actions[bot] avatar theowenyoung avatar zhgqthomas avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

actionsflow-action's Issues

Add an output with the number of total items found

Currently, the output states if the build was successful or not.

But sometimes the build is successful, although no new items have been found (in the case of RSS polling for example).

In that case, having this kind of informations could be used as a condition to run the subsequent steps (setup act, etc.).

If there is no new item, I could totally skip the next steps and end the task even sooner.

Flow fails - Error: HttpError: Server Error

Description

  • My actionflow setup randomly fails. Some days more often than the others
  • I do not see any useful error from the Actions output

Action file:

https://github.com/quicoto/actionsflow/blob/main/.github/workflows/actionsflow.yml

Current

Action fails with this output:

Error: HttpError: Server Error
Error: Actionsflow error: HttpError: Server Error

Example failed action: https://github.com/quicoto/actionsflow/actions/runs/3328329214/jobs/5504196930

Expectation

It used to never fail until a few days ago.

  • Is there a way to get more verbose error output?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.