# Tasks The **`nmk-github`** plugin defines the tasks described below. ## Setup tasks All tasks in this chapter are dependencies of the base [**`setup`**](https://nmk-base.readthedocs.io/en/stable/tasks.html#setup-task) task. (actionsTask)= ### **`gh.actions`** -- workflow file generation This tasks generate the **{ref}`${githubAction}`** workflow file. | Property | Value/description | |- |- | builder | {py:class}`nmk_github.action.ActionFileBuilder` | input | **{ref}`${githubActionTemplate}`** template file | output | **{ref}`${githubAction}`** workflow file The builder is invoked with the following parameters mapping: | Name | Value | |- |- | python_versions | **{ref}`${githubDetectedPythonVersions}`** | images | **{ref}`${githubOSImages}`** | build_steps | **{ref}`${githubBuildSteps}`** | publish_steps | **{ref}`${githubPublishSteps}`** This task is enabled only if python supported version(s) are configured (see **{ref}`${githubDetectedPythonVersions}`**) The generated Github workflow implements the following steps: * On branch push: * parallelizes multiple jobs for all combinations of **{ref}`${githubDetectedPythonVersions}`** and **{ref}`${githubOSImages}`** values * launches **{ref}`${githubCommand}`** build command * launches **{ref}`${githubPackageCommand}`** packaging command * launches extra steps defined by **{ref}`${githubBuildSteps}`** * On tag push: * runs a single job on a default configuration (ubuntu latest + python minimum supported version) * launches **{ref}`${githubPackageCommand}`** packaging command * launches extra steps defined by **{ref}`${githubPublishSteps}`**