跳到主要内容

Using Script Commands

This document introduces how to execute shell commands, call scripts in the repository, set environment variables, write output parameters, and mask sensitive information in steps using run.

When you need to execute shell commands, call scripts in the repository, set environment variables, or write output parameters in a step.

Prerequisites​

  • runs-on is configured and you are familiar with the pre-installed tools on the Runner.
  • If executing scripts in the repository, you need to checkout the code first.

Quick Example​

jobs:
build:
name: Build
runs-on: [ubuntu-latest, x64, small]
steps:
- name: Checkout source code
uses: checkout
- name: Run build script
run: bash ./scripts/build.sh

Configuration Instructions​

Execute Scripts in the Repository​

Execute existing script files in the repository:

steps:
- name: Checkout source code
uses: checkout
- name: Run build script
run: bash ./scripts/build.sh

Note: The script file may not have execution permissions. It is recommended to use bash script.sh or first chmod +x script.sh.

Set Execution Permissions​

steps:
- name: Checkout source code
uses: checkout
- name: Run bash
run: chmod +x ./scripts/build.sh
- name: Run build
run: ./scripts/build.sh

Write Step Output​

Use the ATOMGIT_OUTPUT environment variable to write step output parameters:

steps:
- name: Run output
id: version
run: echo "version=1.0.0" >> "$ATOMGIT_OUTPUT"
- name: Use output
run: echo "${{ steps.version.outputs.version }}"

Set Environment Variables​

Use the ATOMGIT_ENV environment variable to set environment variables visible to subsequent steps:

steps:
- name: Set env
run: echo "APP_VERSION=1.0.0" >> "$ATOMGIT_ENV"
- name: Use env
run: echo "version=$APP_VERSION"

Add PATH​

Use ATOMGIT_PATH to add a path to the system PATH:

steps:
- name: Add custom tool to PATH
run: echo "/opt/custom-tools" >> "$ATOMGIT_PATH"
- name: Use custom tool
run: custom-tool --version

Mask Commands​

Use ::add-mask:: to mask sensitive information in logs:

steps:
- name: Mask secret
run: |
echo "::add-mask::$MY_SECRET"
echo "The secret value is $MY_SECRET"

The value of $MY_SECRET in the log will be displayed as ***.

Multi-line Output​

Use a delimiter when writing multi-line values to output or environment variables:

steps:
- name: Output lines
id: multiline
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "content<<$EOF" >> "$ATOMGIT_OUTPUT"
echo "line1" >> "$ATOMGIT_OUTPUT"
echo "line2" >> "$ATOMGIT_OUTPUT"
echo "$EOF" >> "$ATOMGIT_OUTPUT"