Skip to content

GitHub Action for creating and preparing a Squeak image

License

Notifications You must be signed in to change notification settings

LinqLover/create-image

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

create-image

Tests Lint Public workflows that use this action

GitHub Action for creating and preparing an all-in-one image for Squeak.

You can use this action in your workflow to automatically deploy a one-click/all-in-one image bundle of Squeak containing your app or modifications.

  • The bundle is fetched from https://squeak.org/downloads and will contain a ready-to-use image and VM binaries for all supported platforms (head over to squeak-smalltalk/squeak-app for more information).
  • You can run custom scripts to prepare the image before saving it or to postpare it when it is opened again.
  • You can choose the Squeak version and bitness of the image.

Usage

Example workflow

Below is a simple example workflow that creates an image, loads some code into it, and uploads the image bundle as an artifact of your workflow:

on:
  push:
    branches: [master]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: LinqLover/create-image@latest
        id: create-image
        with:
          squeak-version: '6.0'
          prepare-script: ./scripts/prepareImage.st
      - uses: actions/upload-artifact@master
        with:
          name: image
          path: ${{ steps.create-image.outputs.bundle-path }}

In this example, scripts/prepareImage.st might look like this:

"Install something..."
Installer new merge: #ffi.

"Open some welcome contents..."
MovingEyeMorph extraExampleSqueakIsWatchingYou openCenteredInWorld.

Inputs

Parameter Description Example Required?
squeak-version The version of Squeak to be used. trunk, '6.0' required
squeak-bitness The bitness of the image to be created. Defaults to 64. 64, 32 (⚠ currently not supported on GitHub Actions, see actions/runner#1181) optional
prepare-script A script to be filed into the image before saving it. /path/to/script.st optional
postpare-script A script to be executed in the image after saving it, i.e., at the moment the user opens it again. /path/to/script.st optional

All the silly mistakes and typos made by you in the prepare/postpare scripts will be caught by the action and displayed in the action log.

Outputs

Parameter Description Example
bundle-path Indicates the path to the created bundle file. /path/to/Squeak6.0Alpha-12345-64bit-AllInOne.zip

To browse further usage examples, click here.

Contribution

... is as always very welcome! If you use this action, have any ideas for improvements, or even would like to submit your patch, my issues & PRs are open!


Carpe Squeak! 🎈