Skip to content

publish

publish #10

Workflow file for this run

name: publish
on:
schedule:
- cron: '30 5 * * *' # every day at 5:30 AM
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
publish-prerelease:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup - git
run: |
git --version
git config user.name "GitHub Actions Bot"
git config user.email "<>"
git status
- name: Setup - just
uses: taiki-e/install-action@just
- name: Check for new commits in kanata/parser
working-directory:
./kanata
run: |
if git diff --quiet origin/main -- parser; then
# no new commits, skip release.
# todo: instead of canceling, pass, but without running remaining steps.
gh run cancel ${{ github.run_id }}
gh run watch ${{ github.run_id }}
fi
- name: Try bump kanata
run: |
status=$(just bump_kanata > /dev/null 2>&1; echo $?)
if [ $status -eq 0 ]; then
git push
elif [ $status -eq 123 ]; then
# Status 123 means that the version of kanata is already
# most recent (at least according to CHANGELOG.md).
exit 1
else
echo "Failed with $status"
exit 1
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup - cargo cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Setup - wasm-pack and wasm32-unknown-unknown target
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
rustup target add wasm32-unknown-unknown
- name: Setup - Node.js
uses: actions/setup-node@v3
with:
node-version: '21'
cache: 'yarn'
- name: Setup - install yarn
run: yarn
- name: Extract version from package.json
uses: sergeysova/jq-action@v2
id: version
with:
cmd: 'jq .version package.json --raw-output --exit-status'
- name: Increment semver patch number
id: new-version
run: curl https://raw.githubusercontent.com/rszyma/shell-semver/master/increment_version.sh -sSf | sh -s -- -p ${{ steps.version.outputs.value }}
- name: Setup - vsce
run: yarn global add vsce
- name: Build and publish
run: just pre_release ${{ steps.new-version.outputs.value }}
env:
VSCE_PAT: ${{ secrets.VSCE_ACCESS_TOKEN }}