GitHub Workflows#
We have a limited amount of free usage of GitHub Actions, but we are currently well under that limit. Small GitHub Actions are fine to add, but longer jobs may need discussion or approval.
Use of GitHub Workflows (Actions) in SSW projects is not required, but there are a few suggested tools. The suggested tools are collected into the repository at lsst-ts/tssw_workflows. It contains the following:
enforce_rebasechecks that the branch is rebased onto the latestdevelopbranch..github/workflows/enforce_rebase.yaml#name: enforce_rebase on: pull_request: types: [assigned, opened, synchronize, reopened, labeled, unlabeled] jobs: call-workflow: uses: lsst-ts/tssw_workflows/.github/workflows/enforce_rebase.yaml@main
lintuses the standard pre-commit configuration and runsgenerate_pre_commit_confand all pre-commit hooks..github/workflows/lint.yaml#name: lint on: push jobs: call-workflow: uses: lsst-ts/tssw_workflows/.github/workflows/lint.yaml@main
news_creationconfirms that at least one news fragment has been added..github/workflows/news_creation.yaml#name: news_creation on: pull_request: types: [opened, reopened, synchronize] jobs: call-workflow: uses: lsst-ts/tssw_workflows/.github/workflows/news_creation.yaml@main
Although the lint action is redundant with Jenkins, the other two provide independent checks;
however, the addition of the lint action gives rapid feedback when lint rules have been violated
and makes the information available to users who don’t have access to Jenkins.