11on :
2- push :
3- branches :
4- - add-bucket-upload-workflow
5- pull_request :
6- branches :
7- - add-bucket-upload-workflow
2+ pull request :
83
94jobs :
105 bucket-upload-S3 :
@@ -21,78 +16,31 @@ jobs:
2116
2217 - name : Clone 2ms Repository and Checkout Commit SHA
2318 run : |
24- # Clonar o repositório 2ms no diretório do workspace
25- git clone https://github.com/checkmarx/2ms.git $GITHUB_WORKSPACE/2ms
26- cd $GITHUB_WORKSPACE/2ms
27-
28- # Buscar todos os commits e fazer checkout no commit correto
29- git fetch --all
30- git checkout ${{ github.sha }}
31-
32- # Compilar o 2ms
33- go build -o $GITHUB_WORKSPACE/2ms/dist/2ms main.go
34-
35- # Verificar se o binário foi criado corretamente
36- ls -la $GITHUB_WORKSPACE/2ms/dist/2ms
37-
38- # Garantir permissões de execução
39- chmod +x $GITHUB_WORKSPACE/2ms/dist/2ms
19+ git clone https://github.com/checkmarx/2ms.git $GITHUB_WORKSPACE/2ms
20+ cd $GITHUB_WORKSPACE/2ms
21+ git fetch --all
22+ git checkout ${{ github.sha }}
23+ go build -o $GITHUB_WORKSPACE/2ms/dist/2ms main.go
24+ chmod +x $GITHUB_WORKSPACE/2ms/dist/2ms
4025
4126 - name : Load Repos from JSON and Clone Each Repo
4227 run : |
43- # Baixar o arquivo repos.json diretamente
44- curl -o /tmp/repos.json https://raw.githubusercontent.com/cx-miguel-neiva/2ms-github-action/main/repos.json
45-
46- # Extrair os repositórios e criar uma string separada por espaços (ou nova linha, conforme necessário)
47- REPOS_LIST=$(jq -r '.projects[]' /tmp/repos.json)
48-
49- # Exibir o conteúdo de REPOS_LIST para depuração
50- echo "Repos List: $REPOS_LIST"
51-
52- # Corrigir separação da variável para garantir que a leitura esteja correta
53- echo "repos=$(echo "$REPOS_LIST" | tr '\n' ' ')" >> $GITHUB_ENV
54-
55- # Iterar sobre cada repositório e cloná-los
56- IFS=' ' # Ajusta o delimitador para garantir que o loop leia as URLs separadas por espaço
57- for repo_url in $REPOS_LIST; do
58- repo_name=$(basename "$repo_url" .git)
59- echo "Cloning repository: $repo_url"
60-
61- # Criar uma pasta para o repositório dentro de workspace/repos
62- mkdir -p "$GITHUB_WORKSPACE/workspace/repos/$repo_name"
63-
64- # Clonar o repositório na pasta criada
65- git clone "$repo_url" "$GITHUB_WORKSPACE/workspace/repos/$repo_name"
66-
67- # Verificar se o repositório foi clonado corretamente
68- ls -la "$GITHUB_WORKSPACE/workspace/repos/$repo_name"
69- done
70-
28+ curl -o /tmp/repos.json https://raw.githubusercontent.com/cx-miguel-neiva/2ms-github-action/main/repos.json
29+ REPOS_LIST=$(jq -r '.projects[]' /tmp/repos.json | tr '\n' ' ')
30+ echo "repos=$REPOS_LIST" >> $GITHUB_ENV
31+ for repo_url in $REPOS_LIST; do
32+ repo_name=$(basename "$repo_url" .git)
33+ mkdir -p "$GITHUB_WORKSPACE/repos/$repo_name"
34+ git clone "$repo_url" "$GITHUB_WORKSPACE/repos/$repo_name"
35+ done
36+
7137 - name : Run 2ms Scan for each repo
7238 run : |
7339 mkdir -p $GITHUB_WORKSPACE/results
74-
75- # Obter a lista de repositórios do GITHUB_ENV
7640 IFS=' ' read -r -a REPOS_ARRAY <<< "$repos"
77-
78- # Verificar se o binário 2ms existe no diretório correto
79- if [ ! -f /tmp/2ms/dist/2ms ]; then
80- echo "2ms binary not found!"
81- exit 1
82- fi
83-
8441 for repo_url in "${REPOS_ARRAY[@]}"; do
8542 repo_name=$(basename "$repo_url" .git)
86- echo "Running 2ms scan on $repo_name"
87-
88- # Executar o scan 2ms no repositório clonado, passando o path correto
8943 $GITHUB_WORKSPACE/2ms/dist/2ms filesystem --path "$GITHUB_WORKSPACE/repos/$repo_name" --ignore-on-exit results --report-path "$GITHUB_WORKSPACE/results/$repo_name.sarif"
90-
91- # Verificar se o comando 2ms foi executado corretamente
92- if [ $? -ne 0 ]; then
93- echo "2ms scan failed for $repo_name, continuing with the next repo."
94- continue
95- fi
9644 done
9745
9846 - name : Get Results Directory
@@ -114,34 +62,25 @@ jobs:
11462 COMMIT_HASH="${{ github.sha }}"
11563 PR_OWNER="${{ github.actor }}"
11664 TARGET_BRANCH="master"
117-
11865 DEST_DIR="${ENGINE}/${TARGET_BRANCH}/${BRANCH_NAME}/${{ env.twoms_version }}/pr-${PR_NUMBER}"
119-
12066 echo "destination_dir=$DEST_DIR" >> $GITHUB_ENV
12167 echo "results_dir=${{ env.results_dir }}" >> $GITHUB_ENV
12268
12369 - name : Organize SARIF files
12470 run : |
12571 mkdir -p "${{ env.results_dir }}/pr-${{ github.event.number }}"
126-
127- echo "Listing SARIF files before processing..."
128- ls -la $GITHUB_WORKSPACE/results/
129-
13072 for sarif_file in $GITHUB_WORKSPACE/results/*.sarif; do
13173 if [[ -f "$sarif_file" ]]; then
13274 project_name=$(basename "$sarif_file" .sarif)
13375 mkdir -p "${{ env.results_dir }}/pr-${{ github.event.number }}/$project_name"
13476 mv "$sarif_file" "${{ env.results_dir }}/pr-${{ github.event.number }}/$project_name/results.sarif"
135- echo "Moved $sarif_file to pr-${{ github.event.number }}/$project_name/results.sarif"
13677 fi
13778 done
13879
13980 - name : Create Metadata File
14081 run : |
14182 COMMIT_TIMESTAMP=$(git log -1 --format=%ct)
142-
14383 METADATA_PATH="${{ env.results_dir }}/pr-${{ github.event.number }}/metadata.json"
144-
14584 echo '{
14685 "seq": "'"${COMMIT_TIMESTAMP}"'",
14786 "tag": "'"${{ github.event.number }}"'",
15392 "version": "'"${{ env.twoms_version }}"'"
15493 }' > "$METADATA_PATH"
15594
95+
15696 - name : Upload results to S3
15797 run : |
15898 aws s3 cp --recursive "${{ env.results_dir }}/pr-${{ github.event.number }}" "s3://${{ secrets.CES_AWS_BUCKET }}/${{ env.destination_dir }}" \
0 commit comments