Comment

Comment by pqb

Nice idea, worth mentioning other features:

- Reusable workflows (note: matrix strategy doesn't work here): https://docs.github.com/en/actions/using-workflows/reusing-w...

- Creating an action: https://docs.github.com/en/actions/creating-actions/metadata...

- Composite actions: https://docs.github.com/en/actions/creating-actions/creating...

- Fact, the "uses" in step can be a relative path in the same repository (obviously, you must checkout the code, when it uses a relative path): https://docs.github.com/en/actions/using-workflows/workflow-...

- Script as an action: https://github.com/actions/github-script

- Using GitHub Packages and artifacts: https://docs.github.com/en/actions/publishing-packages/about...

- Using docker-compose-like services that run alongside of the container: https://docs.github.com/en/actions/using-containerized-servi...

- Using heredoc to share multi-line JSON in an environment variable, also using fromJSON/toJSON functions:

  - name: get-version
    id: get-version
    run: |-
      echo 'JSON_RESPONSE<<EOF' >> $GITHUB_ENV
      cat package.json >> $GITHUB_ENV
      echo 'EOF' >> $GITHUB_ENV

  - name: print-version
    run: echo "${{ fromJSON(env.JSON_RESPONSE).version }}"
- The matrix/strategy of the dependent workflow can be created dynamically, like in the following workflow: https://github.com/googleapis/google-cloud-go/blob/83bbc2e7c...

And many, many more :)

parent pqb 4 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton