Skip to content

PractiTest/babashka-docker-action

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

babashka


Run babashka script\shell commands.

Action inputs


You can choose to either:

  • execute a babashka script in your local repository
  • download and execute remote babashka script (hosted in a different repository\site)
  • execute babashka shell command(s) (bb)

execute script from your repo:

Name Required Description
bb_src no (optional) path to babashka script to execute
bb_url no (optional) URL for the babashka script to download and execute
bb_args no (optional) arguments to pass to the babashka script
bb_cmd no (optional) the shell commands to execute piped

Note that you must set only one of bb_src, bb_url or bb_cmd inputs arguments.

Action outputs

The script\shell actions sets output into bb_out var.

Example usage

To use the action create an babashka.yml (or choose custom *.yml name) in the .github/workflows/ directory.

To execute a babashka script

- name: Execute babashka script
  uses: tzafrirben/babashka-docker-action@v1
  with:
    bb_src: <path-to-babashka-script>
    bb_args: <bb-script-arguments> (optional)

To execute a remote babashka script

- name: Execute babashka script
  uses: tzafrirben/babashka-docker-action@v1
  with:
    bb_src: 'http://example.com/<path-to-bb-script-to-dowload>'
    bb_args: <bb-script-arguments> (optional)

To execute babashka shell commands (bb)

- name: Execute babashka shell command(s)
  uses: tzafrirben/babashka-docker-action@v1
  with:
    bb_cmd: <command(s)>

See action.yml for the full documentation for this action's inputs and outputs.

babashka script example

In order to execute a babashka script from your git repository, you must first checkout the git repository in the virtual environment.

on: [push]
jobs:
  babashka_job:
    runs-on: ubuntu-latest
    name: Execute babashka script
    steps:
      # To use a script from the repository,
      # you must check out the repository first
      - name: Checkout
        uses: actions/checkout@v2
      # Now we can execute a babashka script from our
      # repository
      - name: babashka script
        uses: tzafrirben/[email protected]
        id: bb_script
        with:
          bb_src: '<path-to-script-in-repo>'
          bb_args: '1 2 3 ...'
      # Print the output of the babashka script from the
      # `bb_script` step 
      - name: Get the script output
        run: echo "${{ steps.bb_script.outputs.bb_out }}"

babashka remote script example

Download and execute a babashka script hosted on different repository or website. In this example we are downloading a script from the examples directory in babashka git repository

on: [push]
jobs:
  babashka_job:
    runs-on: ubuntu-latest
    name: Execute babashka script
    steps:
      # Download and execute babashka script from a different repository
      # repository
      - name: babashka script
        uses: tzafrirben/[email protected]
        id: bb_script
        with:
          bb_url: 'https://raw.githubusercontent.com/borkdude/babashka/master/examples/pst.clj'
      # Print the output of the babashka script from the
      # `bb_script` step 
      - name: Get the script output
        run: echo "${{ steps.bb_script.outputs.bb_out }}"

babashka shell example

In order to execute a babashka shell command use the bb piped with other shell command(s)

on: [push]
jobs:
  babashka_job:
    runs-on: ubuntu-latest
    name: Execute babashka shell commands
    steps:
      - name: babashka shell
        uses: tzafrirben/[email protected]
        id: bb_shell
        with:
          bb_cmd: "ls | bb -i '(take 2 *input*)'"
      # Print the output of the babashka shell command from the
      # `bb_shell` step 
      - name: Get the script output
        run: echo "${{ steps.bb_shell.outputs.bb_out }}"
``

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Clojure 86.2%
  • Dockerfile 13.8%