Github action that sets the NPM package version based on a date schema.
Examples:
Schema | Output | Description |
---|---|---|
V.yyyy.MM.P | 3.2021.05.1 | Version.Year.Month.Patch |
V.yyMM.P | 3.2105.1 | Version.YearhMonth.Patch |
yyyy.MM.P | 2021.05.1 | Year.Month.Patch |
V.yy.QQ.P | 2021.05.1 | Version.Year.Quarter.Patch |
Each part of the version string (seperated by a dot) can be one of the following:
- V: Major Version Number, passed as input to the github action
- P: Patch Version Number, read from the projects package.json and - optionally - automatically incremented.
- DateFormat: A string that describes a date format.
Important: You can not mix V,P and DateFormat. The following examples are invalid schemas:
- VYY.MM.P -> V-and-YY can not occur in the same part and must be seperated by dots. Valid: V.YY.MM.P
- yyyy.MM.VP -> V-and-P can not occur in the same part and must be separated by dots. Valid: yyyy.MM.V.P
- yyyy.MM.V.ddP -> dd-and-P can not occur in the same part and must be separated by dots. Valid: yyyy.MM.V.dd.P
NPM Limitations: A NPM version number should only exist of three parts: a.b.c.
An example of workflow
name: run npm-version pipeline
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: 'change version'
uses: polygon-software/npm-version-date@master
with:
schema: 'V.yyMM.P'
V: '2'
increase-patch: true
Variable | Default | Example | Description |
---|---|---|---|
schema | - | V.yyyy.MM.P | Date schema based on date-fns format. |
V | 1 | - | Major version number. Must only be provided if "V" is used within the schema. |
increase-patch | false | - | Increment patch verison "P" for the new version string. |
The Formation options follow the date-fns format..
Unit | Pattern | Result examples | Notes |
---|---|---|---|
Calendar year | y | 44, 1, 1900, 2017 | 5 |
yy | 44, 01, 00, 17 | 5 | |
yyy | 044, 001, 1900, 2017 | 5 | |
yyyy | 0044, 0001, 1900, 2017 | 5 | |
yyyyy | ... | 3,5 | |
Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |
YY | 44, 01, 00, 17 | 5,8 | |
YYY | 044, 001, 1900, 2017 | 5 | |
YYYY | 0044, 0001, 1900, 2017 | 5,8 | |
YYYYY | ... | 3,5 | |
ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |
RR | -43, 00, 01, 1900, 2017 | 5,7 | |
RRR | -043, 000, 001, 1900, 2017 | 5,7 | |
RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | |
RRRRR | ... | 3,5,7 | |
Extended year | u | -43, 0, 1, 1900, 2017 | 5 |
uu | -43, 01, 1900, 2017 | 5 | |
uuu | -043, 001, 1900, 2017 | 5 | |
uuuu | -0043, 0001, 1900, 2017 | 5 | |
uuuuu | ... | 3,5 | |
Quarter (formatting) | Q | 1, 2, 3, 4 | |
QQQQQ | 1, 2, 3, 4 | 4 | |
Quarter (stand-alone) | q | 1, 2, 3, 4 | |
01, 02, 03, 04 | |||
qqqqq | 1, 2, 3, 4 | 4 | |
Month (formatting) | M | 1, 2, ..., 12 | |
MM | 01, 02, ..., 12 | ||
Month (stand-alone) | L | 1, 2, ..., 12 | |
LL | 01, 02, ..., 12 | ||
Local week of year | w | 1, 2, ..., 53 | |
ww | 01, 02, ..., 53 | ||
ISO week of year | I | 1, 2, ..., 53 | 7 |
II | 01, 02, ..., 53 | 7 | |
Day of month | d | 1, 2, ..., 31 | |
dd | 01, 02, ..., 31 | ||
Day of year | D | 1, 2, ..., 365, 366 | 9 |
DD | 01, 02, ..., 365, 366 | 9 | |
DDD | 001, 002, ..., 365, 366 | ||
DDDD | ... | 3 | |
ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |
ii | 01, 02, ..., 07 | 7 | |
Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |
ee | 02, 03, ..., 01 | ||
Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |
cc | 02, 03, ..., 01 | ||
Hour [1-12] | h | 1, 2, ..., 11, 12 | |
hh | 01, 02, ..., 11, 12 | ||
Hour [0-23] | H | 0, 1, 2, ..., 23 | |
HH | 00, 01, 02, ..., 23 | ||
Hour [0-11] | K | 1, 2, ..., 11, 0 | |
KK | 01, 02, ..., 11, 00 | ||
Hour [1-24] | k | 24, 1, 2, ..., 23 | |
kk | 24, 01, 02, ..., 23 | ||
Minute | m | 0, 1, ..., 59 | |
mm | 00, 01, ..., 59 | ||
Second | s | 0, 1, ..., 59 | |
ss | 00, 01, ..., 59 | ||
Fraction of second | S | 0, 1, ..., 9 | |
SS | 00, 01, ..., 99 | ||
SSS | 000, 001, ..., 999 | ||
SSSS | ... | 3 | |
Seconds timestamp | t | 512969520 | 7 |
tt | ... | 3,7 | |
Milliseconds timestamp | T | 512969520900 | 7 |
TT | ... | 3,7 |
This project was developed in Zurich, switzerland by PolygonSoftware