@@ -21,86 +21,79 @@ jobs:
2121
2222 - name : Clone 2ms Repository and Checkout Commit SHA
2323 run : |
24- # Clonar o repositório 2ms
25- git clone https://github.com/checkmarx/2ms.git /tmp/2ms
26- cd /tmp/2ms
27-
28- git fetch --all
29- git checkout ${{ github.sha }}
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
40+
41+ - name : Load Repos from JSON and Clone Each Repo
42+ 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
3045
31- # Compilar o 2ms
32- go build -o dist/2ms main.go
46+ # Extrair os repositórios e criar uma string separada por vírgulas
47+ REPOS_LIST=$(jq -r '.projects[]' /tmp/repos.json)
3348
34- # Verificar se o binário foi criado corretamente
35- ls -la dist/2ms
49+ # Exibir o conteúdo de REPOS_LIST para depuração
50+ echo "Repos List: $REPOS_LIST"
3651
37- # Garantir permissões de execução
38- chmod +x dist/2ms
52+ # Salvar a lista de repositórios em uma variável de ambiente
53+ echo "repos=$REPOS_LIST" >> $GITHUB_ENV
3954
40- - name : Load Repos from JSON and Clone Each Repo
41- run : |
42- # Baixar o arquivo repos.json diretamente
43- curl -o /tmp/repos.json https://raw.githubusercontent.com/cx-miguel-neiva/2ms-github-action/main/repos.json
55+ # Iterar sobre cada repositório e cloná-los
56+ for repo_url in $REPOS_LIST; do
57+ repo_name=$(basename "$repo_url" .git)
58+ echo "Cloning repository: $repo_url"
4459
45- # Extrair os repositórios e iterar sobre eles
46- REPOS_LIST=$(jq -r '.projects[]' /tmp/repos.json)
60+ # Criar uma pasta para o repositório
61+ mkdir -p "$GITHUB_WORKSPACE/$repo_name"
4762
48- # Exibir o conteúdo de REPOS_LIST para depuração
49- echo "Repos List: $REPOS_LIST "
63+ # Clonar o repositório na pasta criada
64+ git clone "$repo_url" "$GITHUB_WORKSPACE/$repo_name "
5065
51- # Iterar sobre cada repositório na lista
52- for repo_url in $REPOS_LIST; do
53- repo_name=$(basename "$repo_url" .git)
54- echo "Cloning repository: $repo_url"
55-
56- # Criar uma pasta para o repositório
57- mkdir -p "$GITHUB_WORKSPACE/$repo_name"
58-
59- # Clonar o repositório na pasta criada
60- git clone "$repo_url" "$GITHUB_WORKSPACE/$repo_name"
61-
62- # Verificar se o repositório foi clonado corretamente
63- ls -la "$GITHUB_WORKSPACE/$repo_name"
64- done
65-
66+ # Verificar se o repositório foi clonado corretamente
67+ ls -la "$GITHUB_WORKSPACE/$repo_name"
68+ done
69+
6670 - name : Run 2ms Scan for each repo
6771 run : |
68- mkdir -p $GITHUB_WORKSPACE/results
69-
70- # Obter a lista de repositórios do GITHUB_ENV
71- IFS=',' read -r -a REPOS_ARRAY <<< "$REPOS_LIST"
72-
73- # Verificar se o binário 2ms existe no diretório correto
74- if [ ! -f /tmp/2ms/dist/2ms ]; then
75- echo "2ms binary not found!"
76- exit 1
77- fi
78-
79- # Iterar sobre cada repositório
80- for repo_url in "${REPOS_ARRAY[@]}"; do
81- repo_name=$(basename "$repo_url" .git)
82- echo "Cloning repository: $repo_url"
83-
84- # Criar pasta para o repositório e clonar o repositório
85- git clone "$repo_url" "$GITHUB_WORKSPACE/$repo_name"
86-
87- # Verificar se o repositório foi clonado corretamente
88- ls -la "$GITHUB_WORKSPACE/$repo_name"
89-
90- # Verificar se o binário 2ms existe no diretório onde foi compilado
91- ls -la /tmp/2ms/dist/
92-
93- echo "Running 2ms scan on $repo_name"
72+ mkdir -p $GITHUB_WORKSPACE/results
73+
74+ # Obter a lista de repositórios do GITHUB_ENV
75+ IFS=' ' read -r -a REPOS_ARRAY <<< "$repos"
9476
95- # Executar o scan 2ms no repositório clonado, passando o path correto
96- /tmp/2ms/dist/2ms filesystem --path "$GITHUB_WORKSPACE/$repo_name" --ignore-on-exit results --report-path "$GITHUB_WORKSPACE/results/$repo_name.sarif"
77+ # Verificar se o binário 2ms existe no diretório correto
78+ if [ ! -f /tmp/2ms/dist/2ms ]; then
79+ echo "2ms binary not found!"
80+ exit 1
81+ fi
9782
98- # Verificar se o comando 2ms foi executado corretamente
99- if [ $? -ne 0 ]; then
100- echo "2ms scan failed for $repo_name, continuing with the next repo."
101- continue
102- fi
103- done
83+ # Iterar sobre cada repositório
84+ for repo_url in "${REPOS_ARRAY[@]}"; do
85+ 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
89+ $GITHUB_WORKSPACE/2ms/dist/2ms filesystem --path "$GITHUB_WORKSPACE/$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
96+ done
10497
10598 - name : Get Results Directory
10699 id : get_results_dir
0 commit comments