@@ -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 }}
0 commit comments