Files
backstage/plugins/github-actions
blam e44cb85b22 Merge branch 'master' of github.com:spotify/backstage into migrate-to-msw
* 'master' of github.com:spotify/backstage: (66 commits)
  chore: fix lerna linting
  v0.1.1-alpha.25
  Add Code Insights plugin to sample app and marketplace (#2833)
  Improve main CI build status badge in README (#2866)
  Update roadmap: Design System 🚢 (#2858)
  github/codecov: switch to informational mode
  github/workflows: use the tip of master as the base for comparing PR code coverage
  make saml provider path from globalConfig (#2855)
  fix(catalog-backend): limit search value lengths
  Update project Copyright (#2852)
  fix(catalog-backend): actually use modified entity output (default namespace was broken)
  remove unnecessary center keyword
  Move card header bg to up contrast, fix #2558
  Update name of env authentication env vars
  Fix feedback from dtuite
  Remove chart testing workflow for now
  Only lint charts on Pull Requests
  Move the k8s deployment docs to its own helm deployment page
  Remove line in initdb script that creates backend db
  Use app-config.development.yaml to provide configuration instead of local
  ...
2020-10-13 03:56:13 +02:00
..

GitHub Actions Plugin

Website: https://github.com/actions

Screenshots

TBD

Setup

Generic Requirements

  1. Provide OAuth credentials:

    1. Create an OAuth App with callback URL set to http://localhost:7000/api/auth/github.
    2. Take Client ID and Client Secret from the newly created app's settings page and put them into AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET env variables.
  2. Annotate your component with a correct GitHub Actions repository and owner:

    The annotation key is github.com/project-slug.

    Example:

    apiVersion: backstage.io/v1alpha1
    kind: Component
    metadata:
      name: backstage
      description: backstage.io
      annotations:
        github.com/project-slug: 'spotify/backstage'
    
    spec:
      type: website
      lifecycle: production
      owner: guest
    

Standalone app requirements

If you didn't clone this repo you have to do some extra work.

  1. Add plugin API to your Backstage instance:
yarn add @backstage/plugin-github-actions
// packages/app/src/api.ts
import { ApiRegistry } from '@backstage/core';
import { GithubActionsClient, githubActionsApiRef } from '@backstage/plugin-github-actions';

const builder = ApiRegistry.builder();
builder.add(githubActionsApiRef, new GithubActionsClient());

export default builder.build() as ApiHolder;
  1. Add plugin itself:
// packages/app/src/plugins.ts
export { plugin as GithubActions } from '@backstage/plugin-github-actions';
  1. Run the app with yarn start and the backend with yarn --cwd packages/backend start, navigate to /github-actions/.

Features

  • List workflow runs for a project
  • Dive into one run to see a job steps
  • Retry runs
  • Pagination for runs

Limitations

  • There is a limit of 100 apps for one OAuth client/token pair