https://github.com/beacon-biosignals/matrix-output

Collect outputs from each matrix job

https://github.com/beacon-biosignals/matrix-output

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.1%) to scientific vocabulary

Keywords

ci-cd github-action

Keywords from Contributors

parallel archival distribution interactive sequences generic projection hacking shellcodes modular
Last synced: 5 months ago · JSON representation

Repository

Collect outputs from each matrix job

Basic Info
  • Host: GitHub
  • Owner: beacon-biosignals
  • License: mit
  • Default Branch: main
  • Homepage:
  • Size: 15.6 KB
Statistics
  • Stars: 1
  • Watchers: 16
  • Forks: 1
  • Open Issues: 2
  • Releases: 3
Topics
ci-cd github-action
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Matrix Output

Collect outputs from each matrix job. Currently, setting output for matrix jobs will cause outputs of earlier completed jobs to be overwritten by jobs completed later (see discussion). This action allows the output from each matrix job to be collected into a JSON list to be utilized by dependent jobs.

Requirements

The matrix-output action requires that each job in the job matrix uses a distinct job name which is unique within the workflow file. By default job matrix job names are distinct (e.g. name: Build -> Build (App One, user/app1)) so this only a problem if you accidentally specify the same job name for multiple matrix jobs. If the job name is not unique within the workflow this action will fail and report the ambiguous job name.

Additionally, the matrix-output action is intended to only be used once within a job. Attempting to utilize this action multiple times within the same job will cause the second use of this action to fail.

Finally, it is highly recommended that the matrix-output is either the last step in the job or the near the end of the job. If you choose to have this action run before other slow running actions you may see some extended runtimes for the last few running jobs in the matrix. In order to guarantee correct output we require that the last running job has a complete set of outputs from all other jobs in the matrix. To ensure the last running job has a complete set of outputs we have those jobs wait for other jobs with an incomplete set of outputs.

Examples

```yaml

CI.yaml

jobs: build: name: Build ${{ matrix.build.name }} # These permissions are needed to: # - Use matrix-output: https://github.com/beacon-biosignals/matrix-output#permissions permissions: actions: read runs-on: ubuntu-latest strategy: fail-fast: false matrix: build: - name: App One repo: user/app1 - name: App Two repo: user/app2 outputs: json: ${{ steps.matrix-output.outputs.json }} steps: - uses: docker/build-push-action@v6 id: build-push with: tags: ${{ matrix.build.repo }}:latest push: true # !!! Important: In order to reduce delays we highly recommend that the # matrix-output action is either the last step in a job or close to the end. - uses: beacon-biosignals/matrix-output@v1 id: matrix-output with: yaml: | name: ${{ matrix.build.name }} image: ${{ matrix.build.repo }}@${{ steps.build-push.outputs.digest }}

test: name: Test ${{ matrix.build.name }} needs: build runs-on: ubuntu-latest container: image: ${{ matrix.build.image }} strategy: fail-fast: false matrix: build: ${{ fromJSON(needs.build.outputs.json) }} steps: ... ```

Inputs

The matrix-output action supports the following inputs:

| Name | Description | Required | Example | |:-----------------|:------------|:---------|:--------| | yaml | A string representing a YAML data. Typically, a simple dictionary of key/value pairs. | Yes |

name: ${{ matrix.name }}
...
|

Outputs

| Name | Description | Example | |:-------|:------------|:--------| | json | A string representing a JSON list of dictionaries. Each dictionary in the list contains the output for a single job from the job matrix. The order of this list corresponds to the job index (i.e. strategy.job-index). |

[
  {
    "name": "Server.jl",
    ...
  },
  {
    "name": "Client.jl",
    ...
  }
]
|

Permissions

The follow job permissions are required to run this action:

yaml permissions: actions: read contents: read

The permission actions: read is needed to determine which matrix jobs are still running while contents: read is need for running the action beacon-biosignals/job-context.

Owner

  • Name: Beacon Biosignals
  • Login: beacon-biosignals
  • Kind: organization

GitHub Events

Total
  • Create event: 4
  • Release event: 1
  • Issues event: 1
  • Watch event: 1
  • Delete event: 2
  • Push event: 1
  • Pull request review event: 3
  • Pull request event: 7
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 1
  • Issues event: 1
  • Watch event: 1
  • Delete event: 2
  • Push event: 1
  • Pull request review event: 3
  • Pull request event: 7
  • Fork event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 6
  • Total Committers: 3
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.333
Past Year
  • Commits: 6
  • Committers: 3
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
Curtis Vogt c****t@g****m 4
dependabot[bot] 4****] 1
beacon-infra[bot] 9****] 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 11
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.73
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 1
  • Pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 40 minutes
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.11
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • omus (2)
Pull Request Authors
  • omus (10)
  • dependabot[bot] (4)
Top Labels
Issue Labels
Pull Request Labels
dependencies (4) github_actions (2)