@@ -59,14 +59,15 @@ runs:
5959
6060 - name : Set up environment
6161 shell : bash
62+ env :
63+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
6264 run : |
6365 echo "SECRET_KEY=$(openssl rand -base64 32)" >> $GITHUB_ENV
6466 echo "SCANCODEIO_DB_NAME=scancodeio" >> $GITHUB_ENV
6567 echo "SCANCODEIO_DB_USER=scancodeio" >> $GITHUB_ENV
6668 echo "SCANCODEIO_DB_PASSWORD=scancodeio" >> $GITHUB_ENV
6769 # Sanitize project name for artifact usage
68- SAFE_PROJECT_NAME="${{ inputs.project-name }}"
69- SAFE_PROJECT_NAME="${SAFE_PROJECT_NAME//[^a-zA-Z0-9._-]/_}"
70+ SAFE_PROJECT_NAME="${INPUT_PROJECT_NAME//[^a-zA-Z0-9._-]/_}"
7071 echo "SAFE_PROJECT_NAME=$SAFE_PROJECT_NAME" >> $GITHUB_ENV
7172
7273 - name : Detect if ScanCode.io is already installed
@@ -85,16 +86,18 @@ runs:
8586 shell : bash
8687 run : |
8788 sudo systemctl start postgresql.service
88- sudo -u postgres createuser --no-createrole --no-superuser --login --inherit --createdb ${{ env. SCANCODEIO_DB_USER }}
89- sudo -u postgres psql -c "ALTER USER ${{ env. SCANCODEIO_DB_USER }} WITH ENCRYPTED PASSWORD '${{ env. SCANCODEIO_DB_PASSWORD }} '"
90- sudo -u postgres createdb --owner=scancodeio --encoding=UTF-8 ${{ env. SCANCODEIO_DB_NAME }}
89+ sudo -u postgres createuser --no-createrole --no-superuser --login --inherit --createdb "$ SCANCODEIO_DB_USER"
90+ sudo -u postgres psql -c "ALTER USER $SCANCODEIO_DB_USER WITH ENCRYPTED PASSWORD '$SCANCODEIO_DB_PASSWORD'"
91+ sudo -u postgres createdb --owner=scancodeio --encoding=UTF-8 "$ SCANCODEIO_DB_NAME"
9192
9293 - name : Generate scancodeio pip install argument
9394 if : env.SCANCODEIO_IS_INSTALLED != 'true'
9495 shell : bash
96+ env :
97+ INPUT_EXTRAS : ${{ inputs.scancodeio-extras }}
9598 run : |
9699 SCANCODEIO_PIP_PACKAGE_ARG="scancodeio"
97- TRIMMED_EXTRAS="$(echo "${{ inputs.scancodeio-extras }} " | tr -d '[:space:]')"
100+ TRIMMED_EXTRAS="$(echo "$INPUT_EXTRAS " | tr -d '[:space:]')"
98101 if [ -n "$TRIMMED_EXTRAS" ]; then
99102 SCANCODEIO_PIP_PACKAGE_ARG+="[$TRIMMED_EXTRAS]"
100103 fi
@@ -103,13 +106,15 @@ runs:
103106 - name : Install ScanCode.io (only if not already installed)
104107 if : env.SCANCODEIO_IS_INSTALLED != 'true'
105108 shell : bash
109+ env :
110+ INPUT_REPO_BRANCH : ${{ inputs.scancodeio-repo-branch }}
106111 run : |
107- if [ -z "${{ inputs.scancodeio-repo-branch }} " ]; then
108- echo "Installing the latest ${{ env. SCANCODEIO_PIP_PACKAGE_ARG } } release from PyPI"
109- pip install --upgrade "${{ env. SCANCODEIO_PIP_PACKAGE_ARG }} "
112+ if [ -z "$INPUT_REPO_BRANCH " ]; then
113+ echo "Installing the latest ${SCANCODEIO_PIP_PACKAGE_ARG} release from PyPI"
114+ pip install --upgrade "$SCANCODEIO_PIP_PACKAGE_ARG"
110115 else
111- echo "Installing ${{ env. SCANCODEIO_PIP_PACKAGE_ARG }} from the GitHub branch: ${{ inputs.scancodeio-repo-branch }} "
112- pip install "${{ env. SCANCODEIO_PIP_PACKAGE_ARG }} @ git+https://github.com/aboutcode-org/scancode.io.git@${{ inputs.scancodeio-repo-branch } }"
116+ echo "Installing ${SCANCODEIO_PIP_PACKAGE_ARG} from the GitHub branch: $INPUT_REPO_BRANCH "
117+ pip install "${SCANCODEIO_PIP_PACKAGE_ARG} @ git+https://github.com/aboutcode-org/scancode.io.git@${INPUT_REPO_BRANCH }"
113118 fi
114119
115120 - name : Run migrations to prepare the database
@@ -119,8 +124,10 @@ runs:
119124
120125 - name : Generate `--pipeline` CLI arguments
121126 shell : bash
127+ env :
128+ INPUT_PIPELINES : ${{ inputs.pipelines }}
122129 run : |
123- IFS=',' read -ra PIPELINES <<< "${{ inputs.pipelines }} "
130+ IFS=',' read -ra PIPELINES <<< "$INPUT_PIPELINES "
124131 PIPELINE_CLI_ARGS=""
125132 for pipeline in "${PIPELINES[@]}"; do
126133 PIPELINE_CLI_ARGS+=" --pipeline $pipeline"
@@ -129,45 +136,54 @@ runs:
129136
130137 - name : Generate `--input-url` CLI arguments
131138 shell : bash
139+ env :
140+ INPUT_URLS : ${{ inputs.input-urls }}
132141 run : |
133142 INPUT_URL_CLI_ARGS=""
134- for url in ${{ inputs.input-urls }} ; do
143+ for url in $INPUT_URLS ; do
135144 INPUT_URL_CLI_ARGS+=" --input-url $url"
136145 done
137146 echo "INPUT_URL_CLI_ARGS=${INPUT_URL_CLI_ARGS}" >> $GITHUB_ENV
138147
139148 - name : Create project
140149 shell : bash
150+ env :
151+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
141152 run : |
142- scanpipe create-project ${{ inputs.project-name }} \
143- ${{ env.PIPELINE_CLI_ARGS }} \
144- ${{ env.INPUT_URL_CLI_ARGS }}
153+ scanpipe create-project "$INPUT_PROJECT_NAME" \
154+ $PIPELINE_CLI_ARGS \
155+ $INPUT_URL_CLI_ARGS
145156
146157 - name : Set project work directory in the environment
147158 shell : bash
159+ env :
160+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
148161 run : |
149- project_status=$(scanpipe status --project ${{ inputs.project-name }} )
162+ project_status=$(scanpipe status --project "$INPUT_PROJECT_NAME" )
150163 work_directory=$(echo "$project_status" | grep -oP 'Work directory:\s*\K[^\n]+')
151164 echo "PROJECT_WORK_DIRECTORY=$work_directory" >> $GITHUB_ENV
152165
153166 - name : Copy input files to project work directory
154167 if : ${{ !inputs.input-urls }}
155168 shell : bash
169+ env :
170+ INPUT_INPUTS_PATH : ${{ inputs.inputs-path }}
171+ WORKSPACE : ${{ github.workspace }}
156172 run : |
157- SOURCE_PATH="${{ inputs.inputs-path }} "
158- [[ "$SOURCE_PATH" != /* ]] && SOURCE_PATH="${{ github.workspace } }/$SOURCE_PATH"
159- DESTINATION_PATH="${{ env. PROJECT_WORK_DIRECTORY } }/input/"
173+ SOURCE_PATH="$INPUT_INPUTS_PATH "
174+ [[ "$SOURCE_PATH" != /* ]] && SOURCE_PATH="${WORKSPACE }/$SOURCE_PATH"
175+ DESTINATION_PATH="${PROJECT_WORK_DIRECTORY}/input/"
160176 mkdir -p "$DESTINATION_PATH"
161177
162178 if [ -d "$SOURCE_PATH" ]; then
163179 if [ "$(ls -A "$SOURCE_PATH")" ]; then
164- echo "Copying contents of directory: $SOURCE_PATH → $DESTINATION_PATH"
180+ echo "Copying contents of directory: $SOURCE_PATH -> $DESTINATION_PATH"
165181 cp -r "$SOURCE_PATH"/* "$DESTINATION_PATH"
166182 else
167183 echo "Input directory '$SOURCE_PATH' is empty, nothing to copy."
168184 fi
169185 elif [[ -f "$SOURCE_PATH" ]]; then
170- echo "Copying file: $SOURCE_PATH → $DESTINATION_PATH"
186+ echo "Copying file: $SOURCE_PATH -> $DESTINATION_PATH"
171187 cp "$SOURCE_PATH" "$DESTINATION_PATH"
172188 fi
173189
@@ -177,14 +193,20 @@ runs:
177193
178194 - name : Run the pipelines
179195 shell : bash
180- run : scanpipe execute --project ${{ inputs.project-name }} --no-color
196+ env :
197+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
198+ run : scanpipe execute --project "$INPUT_PROJECT_NAME" --no-color
181199
182200 - name : Generate outputs
183201 id : scanpipe
184202 shell : bash
185- run : scanpipe output
186- --project ${{ inputs.project-name }}
187- --format ${{ inputs.output-formats }}
203+ env :
204+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
205+ INPUT_OUTPUT_FORMATS : ${{ inputs.output-formats }}
206+ run : |
207+ scanpipe output \
208+ --project "$INPUT_PROJECT_NAME" \
209+ --format $INPUT_OUTPUT_FORMATS
188210
189211 - name : Upload outputs
190212 uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
@@ -198,12 +220,16 @@ runs:
198220 - name : Check compliance
199221 if : inputs.check-compliance == 'true'
200222 shell : bash
223+ env :
224+ INPUT_PROJECT_NAME : ${{ inputs.project-name }}
225+ INPUT_FAIL_LEVEL : ${{ inputs.compliance-fail-level }}
226+ INPUT_FAIL_ON_VULNS : ${{ inputs.compliance-fail-on-vulnerabilities }}
201227 run : |
202228 cmd="scanpipe check-compliance \
203- --project ${{ inputs.project-name }} \
204- --fail-level ${{ inputs.compliance-fail-level }} "
229+ --project $INPUT_PROJECT_NAME \
230+ --fail-level $INPUT_FAIL_LEVEL "
205231
206- if [[ "${{ inputs.compliance-fail-on-vulnerabilities }} " == "true" ]]; then
232+ if [[ "$INPUT_FAIL_ON_VULNS " == "true" ]]; then
207233 cmd="$cmd --fail-on-vulnerabilities"
208234 fi
209235
0 commit comments