Gitpodify the MetaCall
Tags: gitpod, opensource, metacall
Published: 2022-01-27 10:12:21

## What is MetaCall?

[MetaCall](https://metacall.io/) helps you build serverless applications using a more fine-grained, scalable and NoOps oriented [Function Mesh](https://medium.com/@metacall/function-mesh-architecture-c0304ba4bad0) instead of ServiceMesh and DevOps approach. It automagically converts your code into a Function Mesh and auto-scales individual hot parts or functions of your app.


## Need of an Automated Cloud Dev Environment

As MetaCall being an Open Source Software, the _major block_ to start contributing to the Project _is to Setup the Project Locally with all custom configurations, tools, libraries that a particular project requires_. And I've been with MetaCall for a year, and the majority of the queries we get on our [internal discord server](https://core.metacall.io/#/docs/community?id=discord) are about setup and dealing with various issues. That's how I started, too. So **_with this Automated Cloud Dev Environment on Gitpod, you can just code, build, test, and ship without having to worry about setting up all the environments!_**

In this blog, i will be automating the setup of [`metacall/core`](https://github.com/metacall/core) on Gitpod.

> _I will be automating this Installation  [official docs of MetaCall](https://core.metacall.io/#/docs/docs?id=_6-build-system)_

## Step 1: Create a `.gitpod.yml` file in Root
> official Docs for configuring the `.gitpod.yml`: [config-gitpod-file](https://www.gitpod.io/docs/config-gitpod-file)

For This Project, requirement was to build the project, pulling metacall docker images & executing them.


```yml

tasks:

- name: Build Metacall
  init: |
    mkdir build && cd ./build
    cmake ..
    cd ..
  command:
    sudo env PATH=$PATH cmake --build . --target install

- name: Pulling metacall Docker Images
  init: |
    docker pull metacall/core
    docker pull metacall/core:dev
    mkdir -p $HOME/metacall
  command:
    docker run -e LOADER_SCRIPT_PATH=/metacall -v $HOME/metacall:/metacall -w /metacall -it metacall/core:dev /bin/bash

- name: Pulling metacall-cli Docker Image
  init: |
    docker pull metacall/core:cli
  command:
    docker run -e LOADER_SCRIPT_PATH=/metacall -v $HOME/metacall:/metacall -w /metacall -it metacall/core:cli

```
### Tasks Description

- Task 1: It will Build all the files

![Build MetaCall](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2uwjns4c413vks4wz9dm.png)

- Task 2: It will pull & execute [`metacall/core:dev`](https://hub.docker.com/r/metacall/core) docker image

![metacall/core:dev docker image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c6ppdn0cazeytpzvhxxl.png)

- Task 3: It will pull & execute [`metacall-cli`](https://hub.docker.com/r/metacall/cli) docker image

![MetaCall CLI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3iwzmbxsid6kns5sq9f2.png)
 
 


At the time of workspace preparation, this `.gitpod.yml` file will setup all of the essential environments. and Your Project Will be ready to code under **_ 60 seconds_** (_Gitpod ⚡_)

## See it in Action

Click the button below. A workspace with all required environments will be created.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/metacall/core)

> To use it on your forked repo, edit the 'Open in Gitpod' button url to `https://gitpod.io/#https://github.com/<your-github-username>/core`

---

### My Pull Request: [gitpodify the metacall/core 🚀](https://github.com/metacall/core/pull/235)

---

### Repository of **`Gitpod`**, an Automated Open Source Cloud Dev. Environment. Use it or just give it a 🌟 for their amazing work.

{% github gitpod-io/gitpod %}

---

### Repository of **`MetaCall/Core`**, give it a 🌟

{% github metacall/core %}

## Other Related Blog:

{% link https://dev.to/siddhantkcode/github-cli-on-gitpod-4e84 %}