Skip to content

CI

CI #462

Workflow file for this run

# test .solo, .stone and .topaz scripts
name: CI
on:
push:
pull_request:
branches:
- v3
- v2
- v1
schedule:
- cron: "15 2 22 * *" #run job on the 22nd day of every month on the 15th minute of the 2nd hour
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, ubuntu-20.04, macos-latest, macos-13 ]
gsvers: [ 3.7.0, 3.7.1 ]
runs-on: ${{ matrix.os }}
env:
GS_VERS: ${{ matrix.gsvers }}
PLATFORM: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- id: setup-superDoit
uses: dalehenrich/setup-superDoit@v3
with:
gemstone-version: ${{ matrix.gsvers }}
superDoit-source: ${{ github.workspace }}
# download the shunit-tests and create stones
- name: test
run: |
curl -L "https://github.com/kward/shunit2/archive/refs/tags/v2.1.8.tar.gz" | tar zx -C ${GITHUB_WORKSPACE}/shunit_tests
export GEMSTONE=${{ steps.setup-superDoit.outputs.gemstone-product-path }}
export GEMSTONE_STONE_DIR=${{steps.setup-superDoit.outputs.stone-directory}}
export GEMSTONE_TOPAZINI_PATH=${{steps.setup-superDoit.outputs.topazini-path}}
export SOLO_GEMSTONE_VERSION=${{ steps.setup-superDoit.outputs.gemstone-version }}
. ${GITHUB_WORKSPACE}/dev/defPath.env
PATH=$GEMSTONE/bin::$PATH
PATH=${GITHUB_WORKSPACE}/bin:$PATH
PATH=${GITHUB_WORKSPACE}/examples/simple:$PATH
# test that install.sh script can be run a second time without error (noop)
${GITHUB_WORKSPACE}/bin/install.sh $GS_VERS
# list running stones
gslist -lc
# .solo tests
shunit_tests/testExamples.solo
shunit_tests/testScriptBin.solo
shunit_tests/testSuite.solo
# .stone tests
shunit_tests/testExamples.stone
# .topaz tests
shunit_tests/testExamples.topaz
# legacy stream implementation .stone tests
# run last, since the base image is changed by legacyStreams.topaz
${GITHUB_WORKSPACE}/examples/utility/legacyStreams.topaz -l -I $GEMSTONE_TOPAZINI_PATH
shunit_tests/testExamples.stone
slack-workflow-status:
if: always()
name: Post Workflow Status To Slack
needs:
- build
runs-on: ubuntu-20.04
steps:
- name: Slack Workflow Notification
uses: Gamesight/slack-workflow-status@master
with:
repo_token: ${{secrets.GITHUB_TOKEN}}
slack_webhook_url: ${{secrets.SLACK_DALEHENRICH}}
name: 'action run'