Skip to content

Commit

Permalink
core: add release step in CI to push packed tarballs to GH release
Browse files Browse the repository at this point in the history
As part of #18 this is a test to try to push tarballs generated by
oclif to a Github Release.

The idea would for the release process to be the following:

- locally on a developer machine, bump the version, commit, tag and
  publish to npm:

  ```
  npm run publish -- --no-release-draft 2.0.1
  ```

- once the tag is pushed, the CI kicks in by doing the following:
  - Github release creation with upload of tarballs with this
    [github action](https://github.com/softprops/action-gh-release)
  • Loading branch information
paulRbr committed May 26, 2021
1 parent fe8c7f5 commit ff470e1
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 1 deletion.
57 changes: 57 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Release
on:
workflow_run:
workflows: [ "Developer checks" ]
types: [ completed ]
jobs:
# This 'check_tag' job is a hack because Github doesn't provide the full ref from the
# original triggered workflow. Hopefully in the future we will only have to change
# the condition of the `release` job to:
#
# ${{ github.event.workflow_run.conclusion == 'success' &&
# startsWith(github.event.workflow_run, 'refs/tag/v') }}
check_tag:
runs-on: ubuntu-latest
outputs:
run_release: ${{ steps.check-tag.outputs.run_jobs }}
steps:
- name: check reference of dependent workflow ${{ github.event.workflow_run.head_branch }}
id: check-tag
run: |
if [[ ${{ github.event.workflow_run.head_branch }} =~ v[0-9]+\.[0-9]+\.[0-9]+.* ]]; then
echo "::set-output name=run_jobs::true"
else
echo "::set-output name=run_jobs::false"
fi
release:
needs: [check_tag]
if: ${{ github.event.workflow_run.conclusion == 'success' && needs.check_tag.outputs.run_release == 'true' }}
runs-on: ubuntu-latest
strategy:
matrix:
node_version: [ '15' ]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: node-${{ matrix.node_version }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
node-${{ matrix.node_version }}-build-${{ env.cache-name }}-
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node_version }}
- run: npm ci
- run: npm run pack
- name: Release
uses: softprops/action-gh-release@v1
with:
files: dist/**/*
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: paulrbr/bump-node-cli
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
"postpack": "rm -f oclif.manifest.json",
"prepack": "rm -rf lib && npm run build && oclif-dev manifest && oclif-dev readme",
"pretest": "npm run clean && npm run build && npm run lint",
"publish": "np",
"publish": "np --no-release-draft",
"test": "mocha \"test/**/*.test.ts\"",
"test-coverage": "nyc npm run test",
"test-integration": "node ./test/integration.js",
Expand Down

0 comments on commit ff470e1

Please sign in to comment.