Giter Site home page Giter Site logo

gh-action's Introduction

gh-action

A GitHub Action for deploying a tailcall server on AWS Lambda or Fly.io.

Inputs

Name Description
provider The provider to use for deployment. Currently, only aws and fly are supported.
tailcall-config The path to the tailcall configuration file used for deployment. This file defines the server's setup and behavior.
tailcall-version Specifies the version of tailcall to use for deployment. If not provided, the Action defaults to the latest available version.
aws-access-key-id The AWS access key ID required for authentication. Ensure this value is stored securely, such as in GitHub Secrets.
aws-secret-access-key The AWS secret access key required for authentication. Store this securely, such as in GitHub Secrets.
aws-region The AWS region where the Lambda function will be deployed (e.g., us-east-1).
aws-iam-role The IAM role name to be created and used for the deployment. If not specified, defaults to iam_for_tailcall.
aws-lambda-function-name The name assigned to the created Lambda function. Defaults to tailcall if not specified.
terraform-api-token The Terraform Cloud API token required for authentication. Ensure this value is stored securely, such as in GitHub Secrets.
terraform-org The Terraform organization to use for the deployment.
terraform-workspace The Terraform workspace to use for the deployment.
fly-api-token The Fly API token required for authentication. Ensure this value is stored securely, such as in GitHub Secrets.
fly-app-name The name of the Fly app to deploy the server to. It must be unique across all users. Defaults to <orgname>-<reponame> if not specified.
fly-region The Fly region where the app will be deployed. Defaults to ord if not specified.

Examples

Deploying a Tailcall server on AWS Lambda

on: [push]

jobs:
  deploy_tailcall:
    runs-on: ubuntu-latest
    name: Deploy Tailcall
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Deploy Tailcall
        id: deploy-tailcall
        uses: tailcallhq/[email protected]
        with:
          provider: 'aws'
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 
          aws-region: "us-east-1"
          aws-iam-role: "iam_for_tailcall"
          terraform-api-token: ${{ secrets.TERRAFORM_API_TOKEN }}
          terraform-org: 'tailcall-demo'
          terraform-workspace: 'tailcall'
          tailcall-config: 'config.graphql'

Deploying a Tailcall server on Fly.io

on: [push]

jobs:
  deploy_tailcall:
    runs-on: ubuntu-latest
    name: Deploy Tailcall
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Deploy Tailcall
        id: deploy-tailcall
        uses: tailcallhq/[email protected]
        with:
          provider: 'fly'
          fly-api-token: ${{ secrets.FLY_API_TOKEN }} 
          fly-app-name: "tailcall"
          fly-region: "lax"
          tailcall-config: 'config.graphql'

gh-action's People

Contributors

shashitnak avatar amitksingh1490 avatar

Watchers

Tushar Mathur avatar

gh-action's Issues

feat: Create a GH Action to deploy on AWS

Create a github action to deploy your tailcall configuration on AWS:

- uses: tailcall/gh-action
  with:
    deploy:
      - aws:
        access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
        secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        config: ./tailcall.graphql

Technical Requirements

  • Keep the action clean and reusable for other partners.
  • Ensure enough unit tests have been added for the actions.
  • Deployment should be on AWS Lambda and publicly accessible
  • The tailcall configuration should be picked up from the repo.
  • Ensure the user experience is simple & smooth.

Additional Information

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.