This action check update and outdate dependencies, update they and incremented package version (patch) on 1, if dependencies were updated.
Personal access token (PAT) used to fetch and push to the repository.
If you use auto-update for the current repository, you can use an automatically generated token: ${{ secrets.GITHUB_TOKEN }}
.
In all other cases, you must create a PAT (classic or fine-grained) with read and write permissions to the repository. Default: ${{ github.token }}
.
Author's email of the commit, default: actions@github.com
.
Author's name of the commit, default: GitHUB Actions
.
Repository name with owner. For example, siarheidudko/autoupdater
. Default: ${{ github.repository }}
.
Name of the branch, default: master
.
Working directory, default: ${{ github.workspace }}
.
Path to changelog file, default: ./CHANGELOG.md
.
Path to package.json file, default: ./package.json
.
Package manager (npm or yarn), default: npm
.
Show debugging log, default: false
.
Checks to be performed before the push. Example:
|
npm run lint
npm run build
npm run test
Package names that should not be updated. Example:
|
@types/node
Update flag. If true, then the version has been updated.
Directory with updates.
Package version.
name: Autoupdate
on:
schedule:
- cron: "* 1 * * *"
concurrency:
group: "${{ github.workflow }} @ ${{ github.ref }}"
cancel-in-progress: false
jobs:
autoupdate:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Autoupdate
id: autoupdate
uses: siarheidudko/autoupdater@v3
Example with publish release and publish package
name: Autoupdate
on:
schedule:
- cron: "0 1 * * *"
concurrency:
group: "${{ github.workflow }} @ ${{ github.ref }}"
cancel-in-progress: false
jobs:
update:
env:
SERVICE_ACCOUNT: ${{ secrets.SERVICE_ACCOUNT }}
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
updated: ${{ steps.autoupdate.outputs.updated }}
version: ${{ steps.autoupdate.outputs.version }}
steps:
- name: Сheckout repo
id: checkout_repo
uses: actions/checkout@v3
with:
path: "tmp"
ref: "main"
- name: Set service account
id: set_service_account
run: echo $SERVICE_ACCOUNT>serviceAccount.json
working-directory: ${{ github.workspace }}/tmp
- name: Autoupdate
id: autoupdate
uses: siarheidudko/autoupdater@v3
with:
author-email: "actions@github.com"
author-name: "Sergey Dudko"
working-directory: ${{ github.workspace }}/tmp
ref: ${{ github.repository }}
branch: "main"
builds-and-checks: |
npm test
release:
runs-on: ubuntu-latest
timeout-minutes: 15
env:
NODE_VERSION: 16
VERSION: ${{ needs.update.outputs.version }}
needs: [update]
if: ${{ needs.update.outputs.updated == 'true' }}
steps:
- name: Сheckout repo
id: checkout_repo
uses: actions/checkout@v3
with:
ref: "main"
- name: Use Node.js ${{ env.NODE_VERSION }}
id: setup_node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: "https://registry.npmjs.org"
- name: Cache node modules
id: use_cache
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install modules
id: install_modules
run: npm ci
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
release_name: Release ${{ env.VERSION }}
body: |
see [CHANGELOG.md](https://github.com/siarheidudko/firebase-admin-cli/blob/main/CHANGELOG.md)
draft: false
prerelease: false
- name: Publish package to NPM
id: npm_publish
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}