name: smartgpg-test-applet # Run this workflow every time a new commit pushed to your repository on: push jobs: applet_tests: runs-on: ubuntu-20.04 steps: # Checkout repository - name: checkout repository uses: actions/checkout@v2 # Run actions # Compilation tests - name: applet tests shell: bash run: | # get dependencies echo "==== get dependencies"; sudo apt-get install -y --no-install-recommends procps autoconf automake libtool m4 pkg-config help2man make gcc ant automake autotools-dev sudo wget gnupg software-properties-common maven git pcscd libpcsclite-dev opensc; sudo apt-get install -y python3-setuptools python3-pyscard python3-pyasn1; pip3 install OpenPGPpy; # get JavaCard SDKs echo "==== get JavaCard SDKs"; git clone https://github.com/martinpaljak/oracle_javacard_sdks && mv oracle_javacard_sdks/jc303_kit/ /tmp/ && mv oracle_javacard_sdks/jc305u4_kit/ /tmp/ && rm -rf oracle_javacard_sdks; # compile SmartPGP echo "==== compile SmartPGP"; cat build.xml | sed 's/ /tmp/build.xml && mv /tmp/build.xml ./; JC_HOME=/tmp/jc303_kit/ ant; # clone jcardsim repository, compile and install echo "==== clone jcardsim repository, compile and install"; git clone https://github.com/licel/jcardsim; cd jcardsim && export JC_CLASSIC_HOME=/tmp/jc305u4_kit/ && mvn initialize && mvn clean package && cd -; # clone vsmartcard, compile and install echo "==== clone vsmartcard, compile and install"; git clone https://github.com/frankmorgner/vsmartcard.git; cd vsmartcard/virtualsmartcard && autoreconf --verbose --install && ./configure --sysconfdir=/etc && make && sudo make install && cd -; # relaunch PCSC echo "==== relaunch PCSC"; sudo killall -KILL pcscd 2> /dev/null || true; sudo pcscd -fad 2>&1 > /tmp/log_pcsc & sleep 2; # launch jcardsim echo "==== launch jcardsim"; java -cp jcardsim/target/jcardsim-3.0.5-SNAPSHOT.jar:SmartPGPApplet/smartpgp.jar com.licel.jcardsim.remote.VSmartCard .github/workflows/smartpgp.cfg 2>&1 > /tmp/log_jcardsim & sleep 5; # install SmartPGP echo "==== test SmartPGP"; opensc-tool -l; opensc-tool -s 80b800001810d276000124010304AFAF000000000000050000020F0F00; # get card status python3 .github/workflows/card-status.py; # main tests python3 .github/workflows/test_SmartPGP.py;