|
1 | 1 | name: "ScanCode action" |
2 | 2 | description: "Run ScanCode.io pipelines in your workflows" |
| 3 | + |
3 | 4 | inputs: |
4 | 5 | pipelines: |
5 | 6 | description: "Names of the pipelines (comma-separated) and in order." |
@@ -58,16 +59,33 @@ runs: |
58 | 59 | echo "SCANCODEIO_DB_NAME=scancodeio" >> $GITHUB_ENV |
59 | 60 | echo "SCANCODEIO_DB_USER=scancodeio" >> $GITHUB_ENV |
60 | 61 | echo "SCANCODEIO_DB_PASSWORD=scancodeio" >> $GITHUB_ENV |
| 62 | + # Sanitize project name for artifact usage |
| 63 | + SAFE_PROJECT_NAME="${{ inputs.project-name }}" |
| 64 | + SAFE_PROJECT_NAME="${SAFE_PROJECT_NAME//[^a-zA-Z0-9._-]/_}" |
| 65 | + echo "SAFE_PROJECT_NAME=$SAFE_PROJECT_NAME" >> $GITHUB_ENV |
| 66 | +
|
| 67 | + - name: Detect if ScanCode.io is already installed |
| 68 | + shell: bash |
| 69 | + run: | |
| 70 | + if command -v scanpipe &> /dev/null; then |
| 71 | + echo "ScanCode.io already installed." |
| 72 | + echo "SCANCODEIO_IS_INSTALLED=true" >> $GITHUB_ENV |
| 73 | + else |
| 74 | + echo "ScanCode.io not found." |
| 75 | + echo "SCANCODEIO_IS_INSTALLED=false" >> $GITHUB_ENV |
| 76 | + fi |
61 | 77 |
|
62 | 78 | - name: Start and setup the PostgreSQL service |
| 79 | + if: env.SCANCODEIO_IS_INSTALLED != 'true' |
63 | 80 | shell: bash |
64 | 81 | run: | |
65 | 82 | sudo systemctl start postgresql.service |
66 | 83 | sudo -u postgres createuser --no-createrole --no-superuser --login --inherit --createdb ${{ env.SCANCODEIO_DB_USER }} |
67 | | - sudo -u postgres psql -c "ALTER USER ${{ env.SCANCODEIO_DB_USER }} WITH encrypted password '${{ env.SCANCODEIO_DB_PASSWORD }}'" |
| 84 | + sudo -u postgres psql -c "ALTER USER ${{ env.SCANCODEIO_DB_USER }} WITH ENCRYPTED PASSWORD '${{ env.SCANCODEIO_DB_PASSWORD }}'" |
68 | 85 | sudo -u postgres createdb --owner=scancodeio --encoding=UTF-8 ${{ env.SCANCODEIO_DB_NAME }} |
69 | 86 |
|
70 | | - - name: Install ScanCode.io |
| 87 | + - name: Install ScanCode.io (only if not already installed) |
| 88 | + if: env.SCANCODEIO_IS_INSTALLED != 'true' |
71 | 89 | shell: bash |
72 | 90 | run: | |
73 | 91 | if [ -z "${{ inputs.scancodeio-repo-branch }}" ]; then |
|
79 | 97 | fi |
80 | 98 |
|
81 | 99 | - name: Run migrations to prepare the database |
| 100 | + if: env.SCANCODEIO_IS_INSTALLED != 'true' |
82 | 101 | shell: bash |
83 | 102 | run: scanpipe migrate --verbosity 0 |
84 | 103 |
|
@@ -155,7 +174,8 @@ runs: |
155 | 174 | uses: actions/upload-artifact@v4 |
156 | 175 | id: artifact-upload-step |
157 | 176 | with: |
158 | | - name: ${{ inputs.outputs-archive-name }} |
| 177 | + # Include the project name in case of multiple runs of the action |
| 178 | + name: ${{ inputs.outputs-archive-name }}-${{ env.SAFE_PROJECT_NAME }} |
159 | 179 | path: ${{ env.PROJECT_WORK_DIRECTORY }}/output/* |
160 | 180 | overwrite: true |
161 | 181 |
|
|
0 commit comments