Skip to content

Commit e3cf580

Browse files
committed
Add signing step main.yml
1 parent 6711ea8 commit e3cf580

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

.github/workflows/main.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,29 +54,47 @@ jobs:
5454
grep 'Validation succeeded' packaging_logs.txt
5555
5656
- name: Build connector
57+
id: build-connector
5758
if: ${{ github.event_name == 'release' }}
5859
working-directory: connector-packager
59-
id: build-connector
6060
run: |
6161
source ./.venv/bin/activate
6262
python -m connector_packager.package $GITHUB_WORKSPACE/cratedb-tableau-connector/cratedb_jdbc
6363
TACO_FILE_PATH=$(find "$(pwd)/packaged-connector" -name "*.taco" | head -n 1)
6464
65-
NEW_TACO_FILE_PATH=$(echo "$TACO_FILE_PATH" | sed 's/postgres/cratedb/')
65+
NEW_TACO_FILE_PATH=$(echo "$TACO_FILE_PATH" | sed 's/postgres/unsigned_cratedb/')
6666
mv "$TACO_FILE_PATH" "$NEW_TACO_FILE_PATH"
6767
TACO_FILE_PATH=$NEW_TACO_FILE_PATH
6868
6969
echo Workflow: Taco file is in: $TACO_FILE_PATH
7070
71-
if [[ "$TACO_FILE_PATH" != *"cratedb_jdbc"* ]]; then
72-
echo "Error: TACO_FILE does not contain 'cratedb_jdbc', are we correctly building and getting the full path?" >&2
71+
if [[ "$TACO_FILE_PATH" != *"unsigned_cratedb_jdbc"* ]]; then
72+
echo "Error: TACO_FILE does not contain 'unsigned_cratedb_jdbc', are we correctly building and getting the full path?" >&2
7373
exit 1
7474
fi
7575
76-
echo "TACO_FILE_PATH=$TACO_FILE_PATH" >> $GITHUB_OUTPUT
76+
echo "UNSIGNED_TACO_FILE_PATH=$TACO_FILE_PATH" >> $GITHUB_OUTPUT
77+
- name: Sign package
78+
id: sign-connector
79+
if: ${{ github.event_name == 'release' }}
80+
env:
81+
SM_HOST: ${{ secrets.SM_HOST }}
82+
SM_API_KEY: ${{ secrets.SM_API_KEY }}
83+
SM_CLIENT_CERT_FILE: ${{ secrets.CERT_PATH }}
84+
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
85+
run: |
86+
echo "${{ secrets.SM_AUTH_CERTIFICATE_B64 }}" | base64 --decode > ${{ secrets.CERT_PATH }}
87+
export UNSIGNED_TACO_FILE_PATH=${{ steps.build-connector.outputs.UNSIGNED_TACO_FILE_PATH }}
88+
export SIGNED_TACO_FILE_PATH=$(echo "$UNSIGNED_TACO_FILE_PATH" | sed 's/unsigned_//')
89+
export SIGN_TOOLS_PATH=$GITHUB_WORKSPACE/cratedb-tableau-connector/sign_tools
90+
91+
wget -O $SIGN_TOOLS_PATH/digicert-jce-1.0.jar https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/1.80/bcprov-jdk18on-1.80.jar
92+
93+
jarsigner -J-Djava.class.path=$SIGN_TOOLS_PATH/digicert-jce-1.0.jar:$SIGN_TOOLS_PATH/bcprov-jdk18on-1.77.jar -keystore NONE -storetype DIGICERT -storepass NONE -providerClass com.digicert.jce.Provider -signedjar $SIGNED_TACO_FILE_PATH -sigalg SHA256withRSA -tsa http://timestamp.digicert.com $UNSIGNED_TACO_FILE_PATH ${{ secrets.SM_KEY_ALIAS }}
94+
echo "SIGNED_TACO_FILE_PATH" >> $GITHUB_OUTPUT
7795
7896
- name: Upload the connector to GH release assets
7997
uses: softprops/action-gh-release@v2
8098
if: ${{ github.event_name == 'release' }}
8199
with:
82-
files: ${{ steps.build-connector.outputs.TACO_FILE_PATH }}
100+
files: ${{ steps.sign-connector.outputs.SIGNED_TACO_FILE_PATH }}

sign_tools/digicert-jce-1.0.jar

628 KB
Binary file not shown.

0 commit comments

Comments
 (0)