GitFx can be used to run some functions and serve the output as a service in a Git hosting.
GitFx is a Python lib extracted from an action ActionServerless. And now the action uses this lib as a dependency to do the real job, you can run the lib locally in a same way as in the action.
- Python 3.5+
- Docker
pip3 install gitfx
# or
python3 -m pip install gitfx
Note: Python 2 is not supported
Let's start with a Python code that'll be used to create a Serverless service:
# function.py
import json
# GET /api/py_hello.json
print(json.dumps({"hello": "world"}))
put the program to a path under current directory, for example, test
folder and run:
python3 -m gitfx test/
# you can pass more folders if you have
then the program's output is written to a file located in api/py_hello.json
that you defined as a route in the comment.
You can use the ActionServerless to run functions in GitHub, and also you can run locally as above example then push the generated files to the remote.
more languages' examples you can find here.
Language | Dependency Installation | Version Management | Example code |
---|---|---|---|
Python | ✅ requirements.txt |
✅ .python-version pyenv |
See |
Ruby | ✅ Gemfile |
✅ .ruby-version rvm/rbenv |
See |
Node.js | ✅ package.json |
✅ .nvmrc nvm |
See |
Perl | ✅ cpanfile |
✅ .perl-version plenv |
See |
PHP | ✅ composer.json |
✅ .phpenv-version phpenv |
See |
Golang | ⬜️ | ⬜️ | See |
Haskell | ⬜️ | ⬜️ | See |
Elixir | ⬜️ | ⬜️ | See |
Bash | -- | -- | See |
Rust | ⬜️ | ⬜️ | See |
Deno | -- | ⬜️ | See |
- ✅ Feature supported
- ⬜ Feature not supported yet
- -- N/A
Contributions are welcome! You may check the following features in case you'd like to contribute but no idea what to do:
- Support to add your favorite languages
- Support dependency installation to the existing languages
- Use this action to create an application and share it