{"id":16087493,"url":"https://github.com/linqlover/create-image","last_synced_at":"2026-02-02T09:02:22.280Z","repository":{"id":47255291,"uuid":"400855543","full_name":"LinqLover/create-image","owner":"LinqLover","description":"GitHub Action for creating and preparing a Squeak image","archived":false,"fork":false,"pushed_at":"2024-01-30T08:10:37.000Z","size":50606,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-22T19:08:29.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinqLover.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-08-28T17:48:50.000Z","updated_at":"2022-11-08T14:15:21.000Z","dependencies_parsed_at":"2024-01-30T09:28:08.625Z","dependency_job_id":"c02ae343-c580-4961-8f92-0309efc09121","html_url":"https://github.com/LinqLover/create-image","commit_stats":{"total_commits":35,"total_committers":3,"mean_commits":"11.666666666666666","dds":"0.37142857142857144","last_synced_commit":"276883b1fdd97fd4af9a9b75d6d5b32953137b2b"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/LinqLover/create-image","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2Fcreate-image","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2Fcreate-image/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2Fcreate-image/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2Fcreate-image/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinqLover","download_url":"https://codeload.github.com/LinqLover/create-image/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2Fcreate-image/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261348755,"owners_count":23145314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T13:29:53.801Z","updated_at":"2026-02-02T09:02:22.274Z","avatar_url":"https://github.com/LinqLover.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-image\n\n[![Tests](https://img.shields.io/github/actions/workflow/status/LinqLover/create-image/test.yml?label=%F0%9F%A7%AA%20Test)](https://github.com/LinqLover/create-image/actions/workflows/test.yml)\n[![Lint](https://img.shields.io/github/actions/workflow/status/LinqLover/create-image/lint.yml?label=%F0%9F%A7%B5%20Lint)](https://github.com/LinqLover/create-image/actions/workflows/lint.yml)\n[![Public workflows that use this action](https://img.shields.io/endpoint?url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3DLinqLover%2Fcreate-image%26badge%3Dtrue)](https://github.com/search?q=LinqLover%2Fcreate-image+path%3A%2F%5E%5C.github%5C%2Fworkflows%5C%2F%2F\u0026ref=opensearch\u0026type=code)\n\n\u003e GitHub Action for creating and preparing an all-in-one image for [Squeak](https://squeak.org/).\n\nYou 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.**\n- The bundle is fetched from \u003chttps://squeak.org/downloads\u003e and will contain a **ready-to-use image** and **VM binaries** for all supported platforms (head over to [squeak-smalltalk/squeak-app](https://github.com/squeak-smalltalk/squeak-app) for more information).\n- You can run **custom scripts** to **prepare** the image before saving it or to **postpare** it when it is opened again.\n- You can choose the **Squeak version** and **bitness** of the image.\n\n## Usage\n\n### Example workflow\n\nBelow 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:\n\n```yml\non:\n  push:\n    branches: [master]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: LinqLover/create-image@latest\n        id: create-image\n        with:\n          squeak-version: '6.0'\n          prepare-script: ./scripts/prepareImage.st\n      - uses: actions/upload-artifact@master\n        with:\n          name: image\n          path: ${{ steps.create-image.outputs.bundle-path }}\n```\n\nIn this example, `scripts/prepareImage.st` might look like this:\n\n```smalltalk\n\"Install something...\"\nInstaller new merge: #ffi.\n\n\"Open some welcome contents...\"\nMovingEyeMorph extraExampleSqueakIsWatchingYou openCenteredInWorld.\n```\n\n### Inputs\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eParameter\u003c/td\u003e\n      \u003ctd\u003eDescription\u003c/td\u003e\n      \u003ctd\u003eExample\u003c/td\u003e\n      \u003ctd\u003eRequired?\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003esqueak-version\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eThe version of Squeak to be used.\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003etrunk\u003c/code\u003e, \u003ccode\u003e'6.0'\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ci\u003erequired\u003c/i\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003esqueak-bitness\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eThe bitness of the image to be created. Defaults to \u003ccode\u003e64\u003c/code\u003e.\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003e64\u003c/code\u003e, \u003ccode\u003e32\u003c/code\u003e (⚠ currently not supported on GitHub Actions, see \u003ca href=\"https://github.com/actions/runner/issues/1181\"\u003eactions/runner#1181\u003c/a\u003e)\u003c/td\u003e\n      \u003ctd\u003e\u003ci\u003eoptional\u003c/i\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003eprepare-script\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eA script to be filed into the image before saving it.\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003e/path/to/script.st\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ci\u003eoptional\u003c/i\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003epostpare-script\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eA script to be executed in the image after saving it, i.e., at the moment the user opens it again.\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003e/path/to/script.st\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ci\u003eoptional\u003c/i\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nAll 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.\n\n### Outputs\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eParameter\u003c/td\u003e\n      \u003ctd\u003eDescription\u003c/td\u003e\n      \u003ctd\u003eExample\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ebundle-path\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eIndicates the path to the created bundle file.\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003e/path/to/Squeak6.0Alpha-12345-64bit-AllInOne.zip\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nTo browse further usage examples, click [here](https://github.com/search?q=LinqLover%2Fcreate-image+path%3A%2F%5E%5C.github%5C%2Fworkflows%5C%2F%2F\u0026ref=opensearch\u0026type=code).\n\n## Contribution\n\n... 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 \u0026 PRs are open!\n\n---\n\nCarpe Squeak! 🎈\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinqlover%2Fcreate-image","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinqlover%2Fcreate-image","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinqlover%2Fcreate-image/lists"}