ci: only fail version bump if semanatic release exits non zero (#36) #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
push: | |
branches: | |
- master # or 'main', depending on your default branch name | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
permissions: | |
# Give the default GITHUB_TOKEN write permission to commit and push the | |
# added or changed files to the repository. | |
contents: write | |
if: startsWith(github.event.head_commit.message, 'build:') | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
cache: 'yarn' | |
- name: Expose yarn config as "$GITHUB_OUTPUT" | |
id: yarn-config | |
shell: bash | |
run: | | |
echo "CACHE_FOLDER=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
# Yarn rotates the downloaded cache archives, @see https://github.com/actions/setup-node/issues/325 | |
# Yarn cache is also reusable between arch and os. | |
- name: Restore yarn cache | |
uses: actions/cache@v4 | |
id: yarn-download-cache | |
with: | |
path: ${{ steps.yarn-config.outputs.CACHE_FOLDER }} | |
key: yarn-download-cache-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
yarn-download-cache- | |
# Invalidated on yarn.lock changes | |
- name: Restore yarn install state | |
id: yarn-install-state-cache | |
uses: actions/cache@v4 | |
with: | |
path: .yarn/ci-cache/ | |
key: ${{ runner.os }}-yarn-install-state-cache-${{ hashFiles('yarn.lock', '.yarnrc.yml') }} | |
- run: yarn install --immutable --inline-builds | |
env: | |
# CI optimizations. Overrides yarnrc.yml options (or their defaults) in the CI action. | |
YARN_ENABLE_GLOBAL_CACHE: 'false' # Use local cache folder to keep downloaded archives | |
YARN_NM_MODE: 'hardlinks-local' # Hardlinks-(local|global) reduces io / node_modules size | |
YARN_INSTALL_STATE_PATH: .yarn/ci-cache/install-state.gz # Very small speedup when lock does not change | |
# Other environment variables | |
HUSKY: '0' # By default do not run HUSKY install | |
- name: Release | |
# Pushing a tag triggers a release | |
run: npx semantic-release | |
- name: Setup tmate session | |
if: ${{ failure() }} | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true |