Skip to content
message-circle

GitHub Action

API Services Portal configuration

v0.1.0 Pre-release

API Services Portal configuration

message-circle

API Services Portal configuration

Publishes an api through the gateway

Installation

Copy and paste the following snippet into your .yml file.

              

- name: API Services Portal configuration

uses: bcgov-nr/[email protected]

Learn more about this action in bcgov-nr/action-gwa-publish

Choose a version

Issues Pull Requests MIT License Lifecycle

API Services Portal configuration

This action publishes an api through the BC Government Gateway gateway.

This is useful in CI/CD pipelines where you need to access a secret, get a vault token or anything vault related.

This tool is currently based on the existing documentation provided by 1team.

Usage

- uses: bcgov-nr/action-gwa-publish@main
  with:
    ### Required
  
    # Namespace of the API
    namespace: The namespace of you routes collection
    
    # API Client ID
    client_id: Namespace's Client ID from API Services Portal
    
    # API Client Secret
    client_secret: Namespace's Client Secret from API Services Portal
    
    # API Configuration File
    file: Template file (e.g. backend/service.gwa.yml)


    ### Typical / recommended

    # Use production environment
    # By default, set as true
    production: Set the environment to be used as the production environment

    

Example

Publish a test environment API for the end-user.

Create or modify a GitHub workflow, like below. E.g. ./github/workflows/pr-open.yml

name: Pull Request

on:
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  builds:
    permissions:
      packages: write
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v3
      - name: Publish API
        uses: bcgov-nr/action-gwa-publish@main
        with:
          namespace: api-namespace
          client_id: ${{ secrets.GWA_CLIENT_ID }}
          client_secret: ${{ secrets.GWA_CLIENT_SECRET }}    
          file: backend/service.gwa.yml

Example, Matrix

Read from multiple folders and publish each one.

Create or modify a GitHub workflow, like below. E.g. ./github/workflows/pr-open.yml

name: Pull Request

on:
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  builds:
    permissions:
      packages: write
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        name: [api1, api2]
        include:
          - name: api1
            file: api1/api.gwa.yml          
          - name: api2
            file: api2/service.yaml
    steps:
      - uses: actions/checkout@v3
      - name: Publish API
        uses: bcgov-nr/action-gwa-publish@main
        with:
          namespace: api-namespace
          client_id: ${{ secrets.GWA_CLIENT_ID }}
          client_secret: ${{ secrets.GWA_CLIENT_SECRET }}    
          file: ${{ matrix.file }}