Publish to Eik on GitHub Actions
This guide describes how to use GitHub Actions to publish to an Eik server. It describes two different approaches:
Choose the one you prefer.
Prerequisites
Your repo needs to have access to an Eik login key. Store this as a Secret you can use in GitHub Actions.
In this guide we'll be using EIK_TOKEN
as the secret name.
Using Semantic Release
There is an Eik plugin for Semantic Release you can use to automatically update the version number in eik.json
based on conventional commits.
To use it, update your release.config.js
to add the plugin, and commit eik.json
back to Git.
export default {
plugins: [
"@eik/semantic-release",
["@semantic-release/git", { assets: ["eik.json"] }],
],
};
Semantic release workflow
With the Eik plugin configured, update your release workflow to pass on the EIK_TOKEN
secret to semantic-release
.
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
EIK_TOKEN: ${{ secrets.EIK_TOKEN }}
run: npx semantic-release
Using the Eik CLI
You can automate publishing to Eik using the Eik CLI.
This example requires you manually update the version number in eik.json
.
name: Publish to Eik
on:
push:
branches:
- main
paths:
- eik.json
jobs:
publish:
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
# you can also add @eik/cli to your devDependencies
- run: npm install --global @eik/cli@^2
- name: Publish to Eik
run: |
eik login --key ${{secrets.EIK_TOKEN}}
eik publish
Automatically increment the patch version number
If you don't really care about the version number you can use the eik version
command to increment the version number on CI. Remember to commit the updated eik.json
back to your repository.
name: Publish to Eik
on:
push:
branches:
- main
jobs:
publish:
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
# you can also add @eik/cli to your devDependencies
- run: npm install --global @eik/cli@^2
- name: Publish to Eik
run: |
eik login --key ${{secrets.EIK_TOKEN}}
eik version
eik publish
- name: Commit updated eik.json
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add eik.json
git commit --message "chore: update version number in eik.json [skip ci]"
git push origin HEAD
shell: bash