This GitHub Action allows you to interact with IBM Cloud Code Engine. Deploy Apps, Jobs, and Functions. It offers flexibility for different deployment types and provides various configuration options.
| Name | Required | Default Value | Description | 
|---|---|---|---|
| api-key | ✅ | - | IAM API Key used to log into the IBM Cloud. Please store your IBM Cloud API key securely in your GitHub repository Secrets. | 
| resource-group | ❌ | Your Default Resource Group | An IBM Cloud Resource Group, a logical container for organizing and managing related cloud resources. | 
| region | ✅ | - | The geographical area where your Code Engine project is located, like eu-decodeengine-regions | 
| project | ✅ | - | The unique identifier (GUID) or the name that identifies your IBM Cloud Code Engine project. | 
| component | ✅ | - | The type of component to deploy. allowed values application,app,function,func,fn,job | 
| name | ✅ | - | The name of the App, Function, or Job. | 
| build-source | ❌ | . | Path to the directory containing the source code. See the Docs for additional information on how Code Engine builds Apps, Jobs and Functions | 
| cpu | ❌ | 1 / 0.5 | CPU value set for your component Default for Apps and Jobs 1 vCPU, 0.5 vCPU for Functions. Config for Functions, Codeengine Memory CPU combo | 
| memory | ❌ | 4G / 2G | Memory value set for your component Default for Apps and Jobs 4 GB, 2GB for Functions. Config for Functions, Codeengine Memory CPU combo | 
| runtime | ❌ | - | The runtime used for the Function. Currently supported nodejs-18andpython-3.11see IBM Code Engine Function Runtimes for more information. | 
To use this action, add it to your GitHub Actions workflow YAML file also make sure to add your IBM Cloud API Key as GitHub Action Repository Secret. There is a example for deploying an App, Job and Python/Node.js Function.
Deploy an App: deploy-app.yml: Deploy your app to Default resource-group in eu-de to the project MY-PROJECT with its source code in the root of the repository the name of the app ismy-app.
name: Deploy App to Code Engine
on:
  push:
    branches:
      - main
  workflow_dispatch:
jobs:
  deploy-app:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v3
    - name: Deploy Application to Code Engine
      uses: IBM/code-engine-github-action@v1
      with:
        api-key: ${{ secrets.IBM_IAM_API_KEY }}
        resource-group: 'Default'
        region: 'eu-de'
        project: 'MY-PROJECT'
        component: 'app'
        name: 'my-app'
        build-source: './'
        cpu: 1
        memory: 4GDeploy a Job: deploy-job.yml: Deploy your Job to Default resource-group in eu-de to the project MY-PROJECT with its source code in the root of the repository the name of the job ismy-job.
name: Deploy App to Code Engine
on:
  push:
    branches:
      - main
  workflow_dispatch:
jobs:
  deploy-job:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v3
    - name: Deploy Job to Code Engine
      uses: IBM/code-engine-github-action@v1
      with:
        api-key: ${{ secrets.IBM_IAM_API_KEY }}
        resource-group: 'Default'
        region: 'eu-de'
        project: 'MY-PROJECT'
        component: 'job'
        name: 'my-job'
        build-source: './'
        cpu: 1
        memory: 4GDeploy a Node.js Function: deploy-nodejs-func.yml: Deploy your Node.js Function to Default resource-group in eu-de to the project MY-PROJECT with its source code in the root of the repository the name of the function ismy-js-fn.
name: Deploy a Node.js Function to Code Engine
on:
  push:
    branches:
      - main
  workflow_dispatch:
jobs:
  deploy-nodejs-junc:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v3
    - name: Deploy JavaScript Function to Code Engine
      uses: IBM/code-engine-github-action@v1
      with:
        api-key: ${{ secrets.IBM_IAM_API_KEY }}
        resource-group: 'Default'
        region: 'eu-de'
        project: 'MY-PROJECT'
        component: 'fn'
        runtime: nodejs-18 
        name: 'my-js-fn'
        build-source: './'
        cpu: 1
        memory: 4GDeploy a Python Function: deploy-python-func.yml: Deploy your Python Function to Default resource-group in eu-de to the project MY-PROJECT with its source code in the root of the repository the name of the function ismy-py-fn.
name: Deploy a Python Function to Code Engine
on:
  push:
    branches:
      - main
  workflow_dispatch:
jobs:
  fn-py:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v3
    - name: Deploy Python Function to Code Engine
      uses: IBM/code-engine-github-action@v1
      with:
        api-key: ${{ secrets.IBM_IAM_API_KEY }}
        resource-group: 'Default'
        region: 'eu-de'
        project: 'MY-PROJECT'
        component: 'fn'
        runtime: python-3.11
        name: 'my-py-fn'
        build-source: './'
        cpu: 1
        memory: 4G