caffco/changed-packages-github-action

View on GitHub
src/main.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import {
  getOptionsFromGithubActionInput,
  setGithubActionOutputFromResults
} from './github'
import {
  getPackagesWithReleasePlan,
  getChangedPackages,
  getChangedPackagesWithoutReleasePlan,
  getChangesetVersionByPackageName
} from './changesets'

export default async function main(): Promise<void> {
  const options = getOptionsFromGithubActionInput()

  const packagesWithReleasePlan = await getPackagesWithReleasePlan(options)

  const packagesAffectedByReleasePlan = packagesWithReleasePlan.map(
    singlePackage => singlePackage.packageJson.name
  )
  const changedPackages = await getChangedPackages(options)
  const changedPackagesNames = changedPackages.map(
    singlePackage => singlePackage.packageJson.name
  )

  const changedPackagesWithoutReleasePlan =
    await getChangedPackagesWithoutReleasePlan(options)
  const changedPackagesWithoutChangesets =
    changedPackagesWithoutReleasePlan.map(
      singlePackage => singlePackage.packageJson.name
    )

  const packagesVersionsAfterApplyingReleasePlan =
    await getChangesetVersionByPackageName(options)

  const results = {
    packagesAffectedByReleasePlan,
    changedPackages: changedPackagesNames,
    changedPackagesWithoutChangeset: changedPackagesWithoutChangesets,
    packagesVersionsAfterApplyingReleasePlan
  }

  setGithubActionOutputFromResults(results)
}