@backstage-community/plugin-jenkins
Version:
A Backstage plugin that integrates towards Jenkins
56 lines (53 loc) • 1.83 kB
JavaScript
import { createRouteRef, createSubRouteRef, createPlugin, createApiFactory, discoveryApiRef, fetchApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
import { jenkinsApiRef, JenkinsClient } from './api/JenkinsApi.esm.js';
const rootRouteRef = createRouteRef({
id: "jenkins"
});
const buildRouteRef = createSubRouteRef({
id: "jenkins/builds",
path: "/builds/:jobFullName/:buildNumber",
parent: rootRouteRef
});
const jobRunsRouteRef = createSubRouteRef({
id: "jenkins/job/runs",
path: "/builds/:jobFullName/runs",
parent: rootRouteRef
});
const jenkinsPlugin = createPlugin({
id: "jenkins",
apis: [
createApiFactory({
api: jenkinsApiRef,
deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },
factory: ({ discoveryApi, fetchApi }) => new JenkinsClient({ discoveryApi, fetchApi })
})
],
routes: {
entityContent: rootRouteRef
}
});
const EntityJenkinsContent = jenkinsPlugin.provide(
createRoutableExtension({
name: "EntityJenkinsContent",
component: () => import('./components/Router.esm.js').then((m) => m.Router),
mountPoint: rootRouteRef
})
);
const EntityLatestJenkinsRunCard = jenkinsPlugin.provide(
createComponentExtension({
name: "EntityLatestJenkinsRunCard",
component: {
lazy: () => import('./components/Cards/index.esm.js').then((m) => m.LatestRunCard)
}
})
);
const EntityJobRunsTable = jenkinsPlugin.provide(
createComponentExtension({
name: "EntityJobRunsTable",
component: {
lazy: () => import('./components/JobRunsTable/index.esm.js').then((m) => m.JobRunsTable)
}
})
);
export { EntityJenkinsContent, EntityJobRunsTable, EntityLatestJenkinsRunCard, buildRouteRef, jenkinsPlugin, jobRunsRouteRef, rootRouteRef };
//# sourceMappingURL=plugin.esm.js.map