{"id":13567500,"url":"https://github.com/pkgxdev/setup","last_synced_at":"2025-04-09T20:09:12.343Z","repository":{"id":39730605,"uuid":"457839924","full_name":"pkgxdev/setup","owner":"pkgxdev","description":"GitHub Action and `curl pkgx.sh | sh`","archived":false,"fork":false,"pushed_at":"2025-04-07T14:08:56.000Z","size":7219,"stargazers_count":138,"open_issues_count":4,"forks_count":49,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-09T20:09:05.379Z","etag":null,"topics":["github-actions","installer-script"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkgxdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2022-02-10T15:37:49.000Z","updated_at":"2025-04-07T13:57:28.000Z","dependencies_parsed_at":"2022-07-17T10:16:12.551Z","dependency_job_id":"929fa2f6-440a-4738-bade-263e9cdd6235","html_url":"https://github.com/pkgxdev/setup","commit_stats":{"total_commits":178,"total_committers":15,"mean_commits":"11.866666666666667","dds":0.2865168539325843,"last_synced_commit":"5d48260520e08b5f2852706bb9e27681597a231d"},"previous_names":["pkgxdev/setup","teaxyz/setup"],"tags_count":103,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fsetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fsetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fsetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fsetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkgxdev","download_url":"https://codeload.github.com/pkgxdev/setup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"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":["github-actions","installer-script"],"created_at":"2024-08-01T13:02:33.096Z","updated_at":"2025-04-09T20:09:12.334Z","avatar_url":"https://github.com/pkgxdev.png","language":"Shell","funding_links":[],"categories":["Shell","github-actions"],"sub_categories":[],"readme":"![pkgx](https://pkgx.dev/banner.png)\n\n* This repository provides the `pkgx` GitHub Action.\n* It also hosts [`installer.sh`](./installer.sh); the result of `curl pkgx.sh`.\n\n\n# GitHub Action\n\n```yaml\n- uses: pkgxdev/setup@v4\n```\n\nInstalls the latest version of `pkgx`.\n\n\u003e [!NOTE]\n\u003e\n\u003e * `v3` \u0026 `v4` default to pkgx^2\n\u003e * `v2` defaults to pkgx^1\n\n\nSee [`action.yml`] for all inputs and outputs, but here’s the usual ones:\n\n```yaml\n- uses: pkgxdev/setup@v4\n  with:\n    +: deno@1.30\n       rust@1.60   # we understand colloquial names, generally just type what you know\n       clang       # versions aren’t necessary if you don’t care\n```\n\nThe easiest way to know if it will work in the action is to try it locally on your computer:\n\n```\n$ pkgx +rust\n# if there’s output, we got it\n```\n\n\u003e See [`@pkgxdev/dev`] to run the `dev` command in a GitHub Actions compatible manner\n\n\n## Should you Cache `~/.pkgx`?\n\nNo. pkgx packages are just tarballs. Caching is just a tarball. You’ll likely\njust slow things down.\n\n## Version History\n\n* `v4` defaults to `pkgx`^2, uses node^20 and doesn’t install any pre-reqs on Linux†\n* `v3` defaults to `pkgx`^2 and uses node^20\n* `v2` defaults to `pkgx`^1 and uses node^20\n* `v1` defaults to `pkgx`@latest and uses node^16\n* `v0` should not be used\n\n\u003e † `pkgx` requires glibc\u003e=2.28, libgcc, libstdc++ and libatomic. Generally\n\u003e images come installed with these. If you are building binaries you may need\n\u003e the `-dev` versions of these packages also.\n\n\u0026nbsp;\n\n\n# The `pkgx` Installer\n\nTo install `pkgx`:\n\n```sh\n$ curl https://pkgx.sh | sh\n\n# - installs `pkgx` \u0026 `pkgm` to `/usr/local/bin`\n# - if both are already installed, does an update check\n```\n\nOr on Windows:\n\n```ps1\n$ irm https://pkgx.sh | iex\n# - installs `pkgx.exe` to `$env:ProgramFiles/pkgx`\n# - adds it to your system PATH\n```\n\n## Temporary Sandboxes\n\nTo use `pkgx` to run a command in a temporary sandbox:\n\n```sh\n$ curl -Ssf https://pkgx.sh | sh -s -- gum spin -- sleep 5\n\n# - if pkgx is installed, uses that installation to run gum\n# - if pkgx *isn’t* installed, downloads pkgx to a temporary location\n# - if pkgx *isn’t* installed, packages are also cached to a temporary location\n```\n\n\u003e This usage of our installer can be useful for demonstrative purposes in\n\u003e READMEs and gists.\n\nThis syntax is easier to remember:\n\n```sh\nsh \u003c(curl -L pkgx.sh) gum spin -- sleep 5\n```\n\n\u003e There is the **notable caveat** that the above easier syntax will not work with bash \u003c4\n\u003e which is the bash that comes with macOS. Even though macOS has defaulted to\n\u003e zsh for years it is still relatively easy for users to end up in a situation\n\u003e where bash is the shell interpreting your commands. **Your call**.\n\u003e\n\u003e Additionally, use of `-L` is subject to man-in-the-middle attacks.\n\u003e Again **your call**.\n\n[`action.yml`]: ./action.yml\n[`@pkgxdev/dev`]: https://github.com/pkgxdev/dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgxdev%2Fsetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkgxdev%2Fsetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgxdev%2Fsetup/lists"}