https://github.com/merkaly-io/actions
Reusable GitHub Actions for Merkaly repositories — setup, deploy, publish, and release
https://github.com/merkaly-io/actions
actions cicd devops
Last synced: about 4 hours ago
JSON representation
Reusable GitHub Actions for Merkaly repositories — setup, deploy, publish, and release
- Host: GitHub
- URL: https://github.com/merkaly-io/actions
- Owner: merkaly-io
- Created: 2026-05-27T16:05:23.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2026-06-09T04:42:50.000Z (26 days ago)
- Last Synced: 2026-06-09T05:05:03.970Z (26 days ago)
- Topics: actions, cicd, devops
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# merkaly-io/actions
Reusable GitHub Actions for Merkaly repositories — setup, deploy, publish, and release.
## Actions
### `setup`
Checkout, enable corepack, set up Node 24 with pnpm cache, and install dependencies.
```yaml
- uses: merkaly-io/actions/setup@master
```
No inputs.
---
### `deploy`
Build and deploy to Railway, then record a GitHub deployment.
```yaml
- uses: merkaly-io/actions/deploy@master
with:
railway_project_id: ${{ vars.RAILWAY_PROJECT_ID }}
railway_environment_id: ${{ vars.RAILWAY_ENVIRONMENT_ID }}
railway_service_id: ${{ vars.RAILWAY_SERVICE_ID }}
railway_token: ${{ secrets.RAILWAY_TOKEN }}
```
| Input | Required | Default | Description |
|---|---|---|---|
| `railway_project_id` | yes | — | Railway project UUID |
| `railway_environment_id` | yes | — | Railway environment UUID |
| `railway_service_id` | yes | — | Railway service UUID |
| `railway_token` | yes | — | Railway API token |
| `environment` | no | `production` | GitHub environment name shown in the deployment record |
**Required job permission:**
```yaml
permissions:
deployments: write
```
**Flow:**
1. Builds the app (`pnpm build`)
2. Creates a GitHub deployment and marks it `in_progress`
3. Deploys to Railway (`railway up --ci`)
4. Resolves the Railway service URL (`railway domain`)
5. Updates the GitHub deployment to `success` (with `environment_url`) or `failure`
---
### `publish`
Validate that the tag matches `package.json` version, configure the npm registry, and publish.
```yaml
- uses: merkaly-io/actions/publish@master
```
No inputs. Requires `NODE_AUTH_TOKEN` to be set (via `actions/setup-node` registry-url or a secret).
---
### `release`
Generate a changelog from git history and publish a GitHub Release.
```yaml
- uses: merkaly-io/actions/release@master
```
No inputs. Requires `contents: write` permission on the calling job.
---
## Typical workflow
```yaml
name: Release
on:
push:
tags:
- 'v*'
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
deployments: write
steps:
- uses: merkaly-io/actions/deploy@master
with:
railway_project_id: ${{ vars.RAILWAY_PROJECT_ID }}
railway_environment_id: ${{ vars.RAILWAY_ENVIRONMENT_ID }}
railway_service_id: ${{ vars.RAILWAY_SERVICE_ID }}
railway_token: ${{ secrets.RAILWAY_TOKEN }}
release:
needs: deploy
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: merkaly-io/actions/release@master
```