Skip to content

Commit edd4d30

Browse files
authored
chore: update scripts to initialize with project_name (#34)
* chore: update scripts to initialize with project_name Signed-off-by: Miguel Martinez <[email protected]> * chore: add index workflowName,project Signed-off-by: Miguel Martinez <[email protected]> --------- Signed-off-by: Miguel Martinez <[email protected]>
1 parent 8155c39 commit edd4d30

File tree

7 files changed

+51
-28
lines changed

7 files changed

+51
-28
lines changed

.github/workflows/chainloop.yml

+10-6
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,22 @@ on:
1818
workflow_name:
1919
required: false
2020
type: string
21+
project_name:
22+
required: false
23+
type: string
2124
secrets:
2225
api_token:
2326
required: true
2427
signing_key:
2528
required: true
2629
signing_key_password:
2730
required: true
28-
31+
2932
jobs:
3033
chainloop-attestation:
3134
name: Chainloop Attestation Process
3235
runs-on: ubuntu-latest
33-
36+
3437
steps:
3538
- name: Checkout
3639
uses: actions/checkout@v4
@@ -69,12 +72,12 @@ jobs:
6972
run: |
7073
source <(/usr/local/bin/chainloop/c8l source)
7174
chainloop_attestation_add_from_yaml ${{ inputs.attestation_name }}
72-
75+
7376
- name: Chainloop Attestation Status
7477
run: |
7578
source <(/usr/local/bin/chainloop/c8l source)
7679
chainloop_attestation_status
77-
80+
7881
- name: Validate Collected Artifacts and Record Attestation
7982
if: ${{ success() }}
8083
run: |
@@ -83,7 +86,7 @@ jobs:
8386
env:
8487
CHAINLOOP_SIGNING_KEY: ${{ secrets.signing_key }}
8588
CHAINLOOP_SIGNING_PASSWORD: ${{ secrets.signing_key_password }}
86-
89+
8790
- name: Generate a summary report
8891
run: |
8992
source <(/usr/local/bin/chainloop/c8l source)
@@ -95,7 +98,7 @@ jobs:
9598
source <(/usr/local/bin/chainloop/c8l source)
9699
chainloop attestation reset
97100
chainloop_generate_github_summary_on_failure
98-
101+
99102
- name: Mark attestation as cancelled
100103
if: ${{ cancelled() }}
101104
run: |
@@ -106,3 +109,4 @@ jobs:
106109
CHAINLOOP_TOKEN: ${{ secrets.api_token }}
107110
CHAINLOOP_CONTRACT_REVISION: ${{ inputs.contract_revision }}
108111
CHAINLOOP_WORKFLOW_NAME: ${{ inputs.workflow_name }}
112+
CHAINLOOP_PROJECT_NAME: ${{ inputs.project_name }}

.github/workflows/chainloop_github_release.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ on:
3030
jobs:
3131
onboard_workflow:
3232
name: Onboard Chainloop Workflow
33-
uses: chainloop-dev/labs/.github/workflows/chainloop_onboard.yml@4173e015dbd5dc2a8802555c268da63d57bbe576
33+
uses: chainloop-dev/labs/.github/workflows/chainloop_onboard.yml@main
3434
if: github.event_name == 'release' && github.event.action == 'published'
3535
with:
36-
project: ${{ inputs.workflow_project }}
36+
project: ${{ inputs.project }}
3737
workflow_name: ${{ inputs.workflow_name }}
3838
# Pass parent workflow secrets to the child workflow
3939
secrets: inherit
@@ -46,6 +46,7 @@ jobs:
4646
if: github.event_name == 'release' && github.event.action == 'published'
4747
env:
4848
CHAINLOOP_WORKFLOW_NAME: ${{ needs.onboard_workflow.outputs.workflow_name }}
49+
CHAINLOOP_PROJECT_NAME: ${{ needs.onboard_workflow.outputs.project_name }}
4950
CHAINLOOP_TOKEN: ${{ secrets.api_token }}
5051
GH_TOKEN: ${{ github.token }}
5152

@@ -58,14 +59,14 @@ jobs:
5859
5960
- name: Initialize Attestation
6061
run: |
61-
chainloop attestation init --workflow-name ${CHAINLOOP_WORKFLOW_NAME}
62+
chainloop attestation init --workflow-name ${CHAINLOOP_WORKFLOW_NAME} --project ${CHAINLOOP_PROJECT_NAME}
6263
6364
- name: Attest all assets
6465
run: |
6566
# gh release download raises an error if there are not assets on the release
6667
# that makes the workflow fail, so we use `|| true` to avoid that
6768
gh release download ${{github.ref_name}} -D /tmp/github-release || true
68-
69+
6970
for entry in $(ls /tmp/github-release); do
7071
chainloop attestation add --value "/tmp/github-release/$entry"
7172
done

.github/workflows/chainloop_init.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ on:
1515
workflow_name:
1616
required: false
1717
type: string
18+
project_name:
19+
required: false
20+
type: string
1821
secrets:
1922
api_token:
2023
required: true
@@ -23,7 +26,7 @@ jobs:
2326
chainloop-init:
2427
name: Chainloop Install & Attestation Init
2528
runs-on: ubuntu-latest
26-
29+
2730
steps:
2831
- name: Checkout repository
2932
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -48,10 +51,11 @@ jobs:
4851
id: cache-chainloop
4952
with:
5053
path: .c8l_cache
51-
key: c8l-cache-${{ runner.os }}-${{ github.run_id }}
54+
key: c8l-cache-${{ runner.os }}-${{ github.run_id }}
5255

5356
env:
5457
CHAINLOOP_VERSION: ${{ inputs.chainloop_version }}
5558
CHAINLOOP_TOKEN: ${{ secrets.api_token }}
5659
CHAINLOOP_CONTRACT_REVISION: ${{ inputs.contract_revision }}
5760
CHAINLOOP_WORKFLOW_NAME: ${{ inputs.workflow_name }}
61+
CHAINLOOP_PROJECT_NAME: ${{ inputs.project_name }}

.github/workflows/chainloop_onboard.yml

+12-6
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ on:
1515
workflow_name:
1616
description: The discovered or created Chainloop workflow
1717
value: ${{ jobs.chainloop_onboard.outputs.workflow_name }}
18+
project_name:
19+
description: The discovered or created Chainloop project name
20+
value: ${{ jobs.chainloop_onboard.outputs.project_name }}
1821

1922
jobs:
2023
chainloop_onboard:
2124
name: Automatic Chainloop onboarding flow from Github Actions
2225
runs-on: ubuntu-latest
2326
outputs:
2427
workflow_name: ${{ steps.set_workflow_name.outputs.workflow_name }}
28+
project_name: ${{ steps.set_workflow_name.outputs.project_name }}
2529

2630
steps:
2731
- name: Install Chainloop
@@ -40,14 +44,16 @@ jobs:
4044
workflow_name=$(basename "$PARENT_WORKFLOW" | sed 's/\..*$//g; s/[[:space:]]/-/g; s/_/-/g' | tr '[:upper:]' '[:lower:]')
4145
fi
4246
echo "workflow_name=$workflow_name" >> $GITHUB_OUTPUT
47+
project=${{ inputs.project }}
48+
if [[ "$project" = "" ]]; then
49+
project=$(echo -n ${{github.repositoryUrl}} | rev | cut -d'/' -f1 | rev | sed 's/.git$//g')
50+
fi
51+
echo "project_name=$project" >> $GITHUB_OUTPUT
4352
4453
- name: Discover and create workflow
4554
env:
4655
WORKFLOW_NAME: ${{ steps.set_workflow_name.outputs.workflow_name }}
56+
PROJECT_NAME: ${{ steps.set_workflow_name.outputs.project_name }}
4757
run: |
48-
echo "Creating '$WORKFLOW_NAME' chainloop workflow"
49-
project=${{ inputs.project }}
50-
if [[ "$project" = "" ]]; then
51-
project=$(echo -n ${{github.repositoryUrl}} | rev | cut -d'/' -f1 | rev | sed 's/.git$//g')
52-
fi
53-
chainloop --token ${{ secrets.api_token }} wf create --name "$WORKFLOW_NAME" --project "$project" --skip-if-exists
58+
echo "Creating '$PROJECT_NAME' / '$WORKFLOW_NAME' workflow"
59+
chainloop --token ${{ secrets.api_token }} wf create --name "$WORKFLOW_NAME" --project "$PROJECT_NAME" --skip-if-exists

.github/workflows/chainloop_push.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
required: false
2323
signing_key_password:
2424
required: false
25-
25+
2626
jobs:
2727
chainloop-attestation:
2828
name: Chainloop Attestation Process
@@ -33,7 +33,7 @@ jobs:
3333
id: cache-chainloop
3434
with:
3535
path: .c8l_cache
36-
key: c8l-cache-${{ runner.os }}-${{ github.run_id }}
36+
key: c8l-cache-${{ runner.os }}-${{ github.run_id }}
3737

3838
- name: Restore Chainloop binaries from cache
3939
run: |
@@ -64,7 +64,7 @@ jobs:
6464
run: |
6565
source <(/usr/local/bin/chainloop/c8l source)
6666
chainloop_attestation_add_from_yaml ${{ inputs.attestation_name }}
67-
67+
6868
- name: Validate Collected Artifacts and Record Attestation
6969
if: ${{ success() }}
7070
run: |
@@ -73,7 +73,7 @@ jobs:
7373
env:
7474
CHAINLOOP_SIGNING_KEY: ${{ secrets.signing_key }}
7575
CHAINLOOP_SIGNING_PASSWORD: ${{ secrets.signing_key_password }}
76-
76+
7777
- name: Generate a summary report
7878
run: |
7979
source <(/usr/local/bin/chainloop/c8l source)
@@ -85,7 +85,7 @@ jobs:
8585
source <(/usr/local/bin/chainloop/c8l source)
8686
chainloop attestation reset --remote-state --attestation-id ${CHAINLOOP_ATTESTATION_ID}
8787
chainloop_generate_github_summary_on_failure
88-
88+
8989
- name: Mark attestation as cancelled
9090
if: ${{ cancelled() }}
9191
run: |
@@ -95,5 +95,5 @@ jobs:
9595
CHAINLOOP_VERSION: ${{ inputs.chainloop_version }}
9696
CHAINLOOP_TOKEN: ${{ secrets.api_token }}
9797
CHAINLOOP_CONTRACT_REVISION: ${{ inputs.contract_revision }}
98+
# Not sure if this is being used.
9899
CHAINLOOP_WORKFLOW_NAME: ${{ inputs.workflow_name }}
99-

tools/c8l

+6-2
Original file line numberDiff line numberDiff line change
@@ -674,9 +674,13 @@ chainloop_attestation_init() {
674674
fi
675675
WF_NAME_VALUE=""
676676
if [ -n "${CHAINLOOP_WORKFLOW_NAME}" ]; then
677-
WF_NAME_VALUE="--workflow-name ${CHAINLOOP_WORKFLOW_NAME}"
677+
WF_NAME_VALUE="--workflow ${CHAINLOOP_WORKFLOW_NAME}"
678678
fi
679-
r=$(chainloop attestation init -f --remote-state --output json $CR_VALUE $WF_NAME_VALUE)
679+
PROJECT_NAME_VALUE=""
680+
if [ -n "${CHAINLOOP_PROJECT_NAME}" ]; then
681+
PROJECT_NAME_VALUE="--project ${CHAINLOOP_PROJECT_NAME}"
682+
fi
683+
r=$(chainloop attestation init -f --remote-state --output json $CR_VALUE $WF_NAME_VALUE $PROJECT_NAME_VALUE)
680684
if [ $? -ne 0 ]; then
681685
log_error "Chainloop initialization failed: $r"
682686
return 1

tools/src/lib/chainloop.sh

+6-2
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,13 @@ chainloop_attestation_init() {
9393
fi
9494
WF_NAME_VALUE=""
9595
if [ -n "${CHAINLOOP_WORKFLOW_NAME}" ]; then
96-
WF_NAME_VALUE="--workflow-name ${CHAINLOOP_WORKFLOW_NAME}"
96+
WF_NAME_VALUE="--workflow ${CHAINLOOP_WORKFLOW_NAME}"
9797
fi
98-
r=$(chainloop attestation init -f --remote-state --output json $CR_VALUE $WF_NAME_VALUE)
98+
PROJECT_NAME_VALUE=""
99+
if [ -n "${CHAINLOOP_PROJECT_NAME}" ]; then
100+
PROJECT_NAME_VALUE="--project ${CHAINLOOP_PROJECT_NAME}"
101+
fi
102+
r=$(chainloop attestation init -f --remote-state --output json $CR_VALUE $WF_NAME_VALUE $PROJECT_NAME_VALUE)
99103
if [ $? -ne 0 ]; then
100104
log_error "Chainloop initialization failed: $r"
101105
return 1

0 commit comments

Comments
 (0)