{"id":15090108,"url":"https://github.com/arturo-lang/bundler","last_synced_at":"2025-03-26T00:31:05.190Z","repository":{"id":240665098,"uuid":"799934353","full_name":"arturo-lang/bundler","owner":"arturo-lang","description":"An Arturo -\u003e executable binary bundler as a GitHub action","archived":false,"fork":false,"pushed_at":"2024-10-09T09:32:50.000Z","size":176,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T12:15:36.544Z","etag":null,"topics":["action","arturo","arturo-language","github","github-action","github-action-ci-cd"],"latest_commit_sha":null,"homepage":"","language":null,"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/arturo-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"publiccode":null,"codemeta":null},"funding":{"github":["drkameleon"]}},"created_at":"2024-05-13T11:43:13.000Z","updated_at":"2024-10-09T09:32:54.000Z","dependencies_parsed_at":"2024-05-20T12:53:04.800Z","dependency_job_id":"f62d2a5e-bd3c-482e-b86b-05cb684f2fe1","html_url":"https://github.com/arturo-lang/bundler","commit_stats":{"total_commits":123,"total_committers":1,"mean_commits":123.0,"dds":0.0,"last_synced_commit":"7083940d30482718476386f30d78cb8ecea720e2"},"previous_names":["arturo-lang/bundler"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturo-lang%2Fbundler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturo-lang%2Fbundler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturo-lang%2Fbundler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturo-lang%2Fbundler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arturo-lang","download_url":"https://codeload.github.com/arturo-lang/bundler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245486365,"owners_count":20623244,"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":["action","arturo","arturo-language","github","github-action","github-action-ci-cd"],"created_at":"2024-09-25T09:21:34.632Z","updated_at":"2025-03-26T00:31:05.160Z","avatar_url":"https://github.com/arturo-lang.png","language":null,"funding_links":["https://github.com/sponsors/drkameleon"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003eArturo Bundler\u003c/h1\u003e \n\n### Easily bundle an Arturo app on any GitHub runner/OS\u003cbr\u003e\u003cbr\u003e![License](https://img.shields.io/github/license/arturo-lang/bundler?style=for-the-badge) [![Build Status](https://img.shields.io/github/actions/workflow/status/arturo-lang/bundler/testbundle.yml?branch=main\u0026style=for-the-badge)](https://github.com/arturo-lang/bundler/actions)\n\u003c/div\u003e\n\n---\n \n\u003c!--ts--\u003e\n   * [How do I use it?](#-how-do-i-use-it)\n      * [More options](#more-options)\n   * [How can I release an app?](#-how-can-i-release-an-app)\n   * [FAQ](#-faq)\n   * [License](#license)\n\u003c!--te--\u003e\n\n---\n\n### 🌵 How do I use it?\n\nThe most barebones configuration would be:\n\n```yaml\n- uses: arturo-lang/bundler@main\n  with: \n    token: ${{ secrets.GITHUB_TOKEN }}\n    entry: yourscript.art\n```\n\n\u003e [!TIP]\n\u003e The `entry` field represents your app's \"entry point\" - that is the initial script. Whether it imports other files/scripts or not doesn't matter, since it will - hopefully - be taken care of automatically. Also, you may choose to set the whole folder (in case it's an Arturo *package*) as the entry point: if it is a package with an `info.art` file that declares an `executable:`, it will work as well! 😜\n\nBased on the runner, the action will compile and setup the appropriate, native binary:\n\n| runner | binary |\n|--------|--------|\n| ubuntu-latest | amd64 / Linux |\n| macos-13 | amd64 / macOS |\n| macos-latest | arm64 (M1) / macOS |\n| windows-latest | amd64 / Windows |\n\n#### More options\n\n| option | description |\n|--------|-------------|\n| target | change the name of the final binary (default: `'auto'` = use the same name as the entry script) |\n| version | set version number, to be included in the archive names - in the case of releases, this will be extracted automatically from the release tag (default: `''`) |\n\n### 🔥 How can I release an app?\n\nWith Arturo's bundler and the appropriate setup, you can instantly offer binaries for all major OSes, as part of your GitHub repo's workflows.\n\nBut, panic not! We've got you covered! 😉\n\nActually it's very streamlined and easy:\n\n- create a `.github/` folder inside your repo\n- create a `workflows/` folder inside the above folder (in case it's not already there, obviously)\n- create a new file in `./github/workflows/` (name it `asyouwish.yml`)\n- copy the contents of [https://github.com/arturo-lang/bundler/blob/main/.github/workflows/testrelease.yml](https://github.com/arturo-lang/bundler/blob/main/.github/workflows/testrelease.yml)\n- change only the relevant part above for your own app\n\n\u003e [!NOTE]\n\u003e The configuration you have to complete mainly includes 3 fields:\n\u003e  - `app-name:` The name of your binary as it will appear\n\u003e  - `app-entry:` The \"entry point\" of your app (see [above^](#how-do-i-use-it))\n\u003e  - `app-notes:` (Optionally) add some description that will appear at the bottom of the release\n\nAnd done! 💥\n\nNext time you push a new `vX.Y.Z` tag, a new release will be automatically created, along with all the binaries of your app for Linux/macOS/Windows (and more coming?).\n\nSounds amazing? It actually *is*! 🚀\n\n### 📖 FAQ\n\n#### I have integrated the Release workflow, but it fails at the very last step!\n\nIf you had set up everything properly and come across a `Resource not accessible by integration` error at the last step, chances are you should simply give the action all necessary privileges.\n\nHow? Just go to your repo's *Settings* page, and then click on *Actions*. At the very bottom of the page, set your actions to have Read/Write permissions:\n\n![set read write permissions](docs/settings.png)\n\nAnd... ready to rock'n'roll!\n\n------\n\n### License\n\nMIT License\n\nCopyright (c) 2024 Yanis Zafirópulos (aka Dr.Kameleon)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturo-lang%2Fbundler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farturo-lang%2Fbundler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturo-lang%2Fbundler/lists"}