Skip to content

This action sets the current ISO8601 time to the time output and also provides readableTime, formattedTime, and many more digital outputs like year, day, second, etc. Useful for setting build times in subsequent steps, renaming your artifact, or keeping the same recorded time for the entire workflow.

License

Notifications You must be signed in to change notification settings

josStorer/get-current-time

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Test the action workflow Codecov GitHub release GitHub marketplace Repo contributors Open issues Solved issues

Get Current Time Github Action

This action sets the current ISO8601 time to the time output and also provides readableTime, formattedTime, and many more digital outputs like year, day, second, etc. Useful for setting build times in subsequent steps, renaming your artifact, or keeping the same recorded time for the entire workflow.

You can view some typical input/output in the action.test.js file.

Inputs

format

Time format to use - using MomentJS format syntax - optional

utcOffset

UTC offset to use - using MomentJS utcOffset syntax - optional

timezone

Timezone to use - check moment-timezone list - optional, if set, utcOffset will be ignored, e.g. "America/Los_Angeles"

Outputs

time

The ISO time this action was run, not affected by the parameter utcOffset e.g. '2020-01-01T00:30:15.000Z'

ISOTime

Same as time

readableTime

Human-friendly time - affected by the parameter utcOffset e.g. 'Wed Jan 01 2020 08:30:15 GMT+0800'

formattedTime

The time this action was run - formatted using format and utcOffset inputs

year,month,day,hour,minute,second,millisecond

Digital outputs, just as names

Example usage

steps:
  - name: Get current time
    uses: josStorer/get-current-time@v2
    id: current-time
    with:
      format: YYYYMMDD-HH
      utcOffset: "+08:00"
  - name: Use current time
    env:
      TIME: "${{ steps.current-time.outputs.time }}"
      R_TIME: "${{ steps.current-time.outputs.readableTime }}"
      F_TIME: "${{ steps.current-time.outputs.formattedTime }}"
      YEAR: "${{ steps.current-time.outputs.year }}"
      DAY: "${{ steps.current-time.outputs.day }}"
    run: echo $TIME $R_TIME $F_TIME $YEAR $DAY

Run locally

First

npm install

Build

npm start

And you'll see the index.js is generated in the dist folder

Test

npm test

And you'll see the console output as following:


PASS ./action.test.js

  action

     Should load (1 ms)

     Should correctly set outputs (1 ms)

     Should correctly set outputs with utcOffset (1 ms)

     Should correctly set outputs with timezone (1 ms)

     Should throw error (1 ms)

File % Stmts % Branch % Funcs % Lines Uncovered Line #s
All files 100 100 100 100
 action.js 100 100 100 100

Test Suites: 1 passed, 1 total

Tests: 5 passed, 5 total

Snapshots: 0 total

Time: 1 s

Ran all test suites.


Credit

This project is forked from srfrnk/current-time and detached since 14 December of 2022

About

This action sets the current ISO8601 time to the time output and also provides readableTime, formattedTime, and many more digital outputs like year, day, second, etc. Useful for setting build times in subsequent steps, renaming your artifact, or keeping the same recorded time for the entire workflow.

Topics

Resources

License

Stars

Watchers

Forks