{"id":30056429,"url":"https://github.com/satackey/push-prebuilt-action","last_synced_at":"2025-08-07T22:59:37.675Z","repository":{"id":48318981,"uuid":"249626513","full_name":"satackey/push-prebuilt-action","owner":"satackey","description":"GitHub Action that automatically releases your JS/TS/Docker action","archived":false,"fork":false,"pushed_at":"2021-08-01T21:16:27.000Z","size":998,"stargazers_count":7,"open_issues_count":14,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-11T06:58:08.777Z","etag":null,"topics":["ci","docker-action","javascript-action","publishing","release-automation"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/push-pre-built-javascript-typescript-docker-container-github-action","language":"TypeScript","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/satackey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-24T06:05:21.000Z","updated_at":"2024-08-15T14:36:56.000Z","dependencies_parsed_at":"2023-01-11T17:23:05.088Z","dependency_job_id":null,"html_url":"https://github.com/satackey/push-prebuilt-action","commit_stats":{"total_commits":223,"total_committers":3,"mean_commits":74.33333333333333,"dds":"0.24215246636771304","last_synced_commit":"866e68ebe0e0b79e451dca93f3600e6ba9ee1bab"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/satackey/push-prebuilt-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Fpush-prebuilt-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Fpush-prebuilt-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Fpush-prebuilt-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Fpush-prebuilt-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satackey","download_url":"https://codeload.github.com/satackey/push-prebuilt-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Fpush-prebuilt-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269338063,"owners_count":24400179,"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","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ci","docker-action","javascript-action","publishing","release-automation"],"created_at":"2025-08-07T22:59:29.807Z","updated_at":"2025-08-07T22:59:37.664Z","avatar_url":"https://github.com/satackey.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Push pre-built JS/TS/Docker GitHub Action\n\nThis GitHub action reduces CI execution time by pre-building JavaScript, TypeScript, and Docker container actions.\n\n## What does this action do to make it pre-built?\n\n### JavaScript / TypeScript action\nThis action compiles JavaScript GitHub Action into a single file (with cache files if you want), and pushes it to GitHub.\nCompilation is powered by [zeit/ncc](https://github.com/zeit/ncc).\n\nTypeScript is also supported. Specify your *.ts file to `action.yml#runs.main`\n\nSince there is no need to commit `node_modules`, your GitHub Action can be released quickly\nwith less time for pushes during action development and pulls during CI execution.\n\n\u003e This Action written in TypeScript has been compiled by itself and released.\n\u003e [See pre-built commit](https://github.com/satackey/push-js-action/tree/release-master)\n\n### Docker container action\nThis action builds an image from your Dockerfile, and pushes it to the Docker registry,\nand rewrites `action.yml#rans.image` by pushed tag.\n\nThe job just pulls Docker image when using the action, and there's no time to build the Dockerfile.\n\n## Usage\n\n- [JavaScript / TypeScript](#javascript--typescript)\n- [Docker container](#docker-container)\n\nThe description `action.yml` can be read as `action.yaml`.\n\n### JavaScript / TypeScript\n\n#### Example (Step only)\n```yaml\n    - uses: satackey/push-prebuilt-action@v0.1\n      with:\n        push-branch: release-master\n```\n\n[Click here](#javascript--typescript-action-example) to see workflow example\n\n#### Basic flow\n1. This action detects that your action is a JS/TS action by `action.yml`\n1. This action compiles a file (e.g. `index.js`) specified in `action.yml#runs.main` into `dist/index.js`\n1. Replaces the value of `runs.main` with `dist/index.js`.\n1. Remove files exclude `/action.yml` and `dist/*`.\n1. Checkout a new branch with the name specified in `push-branch`.\n1. Commit all changes.\n1. Force push new branch (and tags) to the `origin`\n\n#### Basic inputs\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `push-branch` **Required**  \n    The name of branch to push compiled file.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `release-tags` optional  \n    The names to tag the compiled file commit.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `commit-message` optional, default: `[auto]`  \n    The commit message for the compiled.\n\n#### Advanced configrations\n\n\u003cdetails\u003e\n\u003csummary\u003eClick here to expand\u003c/summary\u003e\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `committer-name` **Required**  \n    default: `github-actions`  \n    The name to set as git `user.name`.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `committer-email` **Required**  \n    default: `actions@github.com`  \n    The email to set as git `user.email`.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `execlude-from-cleanup` **Required**  \n    default: `action.yml action.yaml dist .git`  \n    Files/dirs to leave for commit.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `force-push` **Required**  \n    default: `'true'`  \n    Whether to force push to branch or tags.\n    Either 'true' or 'false'.\n\n- `js-build-command` **Required**  \n    default: `ncc build --v8-cache {main}`  \n    The command and arguments to build JavaScript or TypeScript files.\n    The artifacts must be in the dist/ directory and entrypoint must be dist/index.js.\n\u003c/details\u003e\n\n\n### Docker container\n\n#### Example (step only)\n```yaml\n    - uses: satackey/push-prebuilt-action@v0.1\n      with:\n        push-branch: release-\u003cyour_branch_name\u003e\n        docker-registry: docker.io\n        docker-user: \u003cyour_dockerhub_username\u003e\n        docker-token: \u003cyour_dockerhub_access_token\u003e\n        docker-repotag: \u003cyour_repo\u003e:${{ github.sha }}\n```\n\n[Click here](#docker-container-action-example) to see workflow example\n\n#### Basic flow\n1. This action detects that your action is a Docker container action by `action.yml`\n1. This action builds the Dockerfile specifed in `action.yml#runs.image`\n1. Replaces the value of `runs.image` with `docker://\u003cdocker-repotag\u003e`.\n1. Remove files exclude `/action.yml`.\n1. Checkout a new branch with the name specified in `push-branch`.\n1. Commit all changes.\n1. Push the Docker image `\u003cdocker-repotag\u003e` to the Docker registry `\u003cdocker-registry\u003e`.\n1. Force push new branch (and tags) to the `origin`\n\n#### Basic inputs\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `push-branch` **Required**  \n    The name of branch to push compiled file.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `release-tags` optional  \n    The names to tag the compiled file commit.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `commit-message` optional, default: `[auto]`  \n    The commit message for the compiled.\n\n- `docker-registry` **Required**  \n    The Docker registry's repository of push action image.\n\n- `docker-repotag` **Required**  \n    The Docker registry's repository of push action image.\n\n- `docker-user` **Required**  \n    The username to login to the Docker registry.\n\n- `docker-token` **Required**  \n    The token to login to the Docker registry.\n\n#### Advanced configrations\n\n\u003cdetails\u003e\n\u003csummary\u003eClick here to expand\u003c/summary\u003e\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `committer-name` **Required**  \n    default: `github-actions`  \n    The name to set as git `user.name`.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `committer-email` **Required**  \n    default: `actions@github.com`  \n    The email to set as git `user.email`.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `execlude-from-cleanup` **Required**  \n    default: `action.yml action.yaml dist .git`  \n    Files/dirs to leave for commit.\n\n\u003c!-- COMMON DESCRIPTION --\u003e\n- `force-push` **Required**  \n    default: `'true'`  \n    Whether to force push to branch or tags.\n    Either 'true' or 'false'.\n\n- `docker-build-command` **Required**  \n    default: `'true'`  \n    The command and arguments to build Docker image.\n\u003c/details\u003e\n\n## Contribution\nPRs are accepted.\n\nIf you are having trouble or feature request, [post new issue](https://github.com/satackey/push-js-action/issues/new).\n\n## Workflow Examples\n\n### JavaScript / TypeScript action example\n\n```yaml\nname: Push pre-built action\n\non:\n  push:\n    branches:\n    - '**'\n\njobs:\n  build_and_push:\n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Setup node.js\n      uses: actions/setup-node@v1\n      with:\n        node-version: 12.x\n\n    - name: Checkout\n      uses: actions/checkout@v2\n\n    - name: Output branch name\n      id: name\n      run: echo \"##[set-output name=branch;]${GITHUB_REF#refs/heads/}\"\n\n    - name: Push\n      uses: satackey/push-prebuilt-action@v0.1\n      with:\n        push-branch: release-${{ steps.name.outputs.branch }}\n        # [optional] The commit can be tagged.\n        # release-tags: v1 v1.0 v1.0.0\n        # [optional] You can change he commit message.\n        # commit-message: '[ci skip]'\n```\n\nThe distribution is pushed into `release-\u003cyour_branch\u003e` like `release-master`.\n\n#### Docker container action example\n\n```yaml\nname: Push pre-built action\n\non:\n  push:\n    branches:\n    - '**'\n\njobs:\n  build_and_push:\n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v2\n\n    - name: Output branch name\n      id: name\n      run: echo \"##[set-output name=branch;]${GITHUB_REF#refs/heads/}\"\n\n    - name: Push\n      uses: satackey/push-prebuilt-action@v0.1\n      with:\n        push-branch: release-${{ steps.name.outputs.branch }}\n        # [optional] The commit can be tagged.\n        # release-tags: v1 v1.0 v1.0.0\n        # [optional] You can change he commit message.\n        # commit-message: '[ci skip]'\n        docker-registry: docker.io\n        docker-user: \u003cyour_dockerhub_username\u003e\n        docker-token: ${{ secrets.DOCKERHUB_TOKEN }} # your dockerhub access token\n        docker-repotag: \u003cyour_repo\u003e:${{ github.sha }}\n```\n\nThe distribution is pushed into `release-\u003cyour_branch\u003e` like `release-master`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatackey%2Fpush-prebuilt-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatackey%2Fpush-prebuilt-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatackey%2Fpush-prebuilt-action/lists"}