Skip to content
box

GitHub Action

Setup smalltalkCI

1.3.4 Latest version

Setup smalltalkCI

box

Setup smalltalkCI

Set up smalltalkCI for testing Squeak/Smalltalk, Pharo, GemStone, and Moose projects

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Setup smalltalkCI

uses: hpi-swa/[email protected]

Learn more about this action in hpi-swa/setup-smalltalkCI

Choose a version

setup-smalltalkCI

This GitHub Action sets up smalltalkCI for testing Smalltalk projects.

Usage

Basic

steps:
  - uses: actions/checkout@v2
  - uses: hpi-swa/setup-smalltalkCI@v1
    id: smalltalkci
    with:
      smalltalk-image: 'Squeak64-trunk'
  - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }}
    shell: bash
    timeout-minutes: 15

Testing Different Smalltalk Images

jobs:
  build:
    strategy:
      matrix:
        smalltalk: [ Squeak64-trunk, Pharo64-stable ]
    name: ${{ matrix.smalltalk }}
    steps:
      - uses: actions/checkout@v2
      - uses: hpi-swa/setup-smalltalkCI@v1
        with:
          smalltalk-image: ${{ matrix.smalltalk }}
      - run: smalltalkci -s ${{ matrix.smalltalk }}
        shell: bash
        timeout-minutes: 15

Testing Different Smalltalk Images with Different Configurations

jobs:
  build:
    strategy:
      matrix:
        smalltalk: [ Squeak64-trunk, Pharo64-stable ]
        smalltalk_config: [ .smalltalkA.ston, .smalltalkB.ston ]
    name: ${{ matrix.smalltalk }}
    steps:
      - uses: actions/checkout@v2
      - uses: hpi-swa/setup-smalltalkCI@v1
        with:
          smalltalk-image: ${{ matrix.smalltalk }}
      - run: smalltalkci -s ${{ matrix.smalltalk }} ${{ matrix.smalltalk_config }}
        shell: bash
        timeout-minutes: 15

Use a different branch or fork

steps:
  - uses: actions/checkout@v2
  - uses: hpi-swa/setup-smalltalkCI@v1
    id: smalltalkci
    with:
      smalltalk-image: 'Squeak64-trunk'
      smalltalkCI-branch: 'testing-branch'
      smalltalkCI-source: 'myfork/smalltalkCI'
  - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }}
    shell: bash
    timeout-minutes: 15

Pharos-specific: Registering Repository in Iceberg

Registering a repository in Iceberg allows developers to access the directory of the repository regardless of where it is located in the file system. This eases access to non-Smalltalk resources. To register the repository in Iceberg, you need to add #registerInIceberg : true to your .smalltalk.ston file.

(IceRepository registeredRepositoryIncludingPackage: self class package) location pathString

However, Iceberg requires the full commit history. actions/checkout provides by default only the latest one. Therefore we need to use an option to get all commits. (Only available for Pharo 7 and later version at this time).

steps:
  - uses: actions/checkout@v3
    with:
      fetch-depth: 0 # Option fetching all commits
  - uses: hpi-swa/setup-smalltalkCI@v1
    id: smalltalkci
    with:
      smalltalk-image: 'Squeak64-trunk'
  - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }}
    shell: bash
    timeout-minutes: 15