# ==================================================================================== # Inputs and configuration inputs: # ==================================================================================== # 🗃️ Base content # Base content base: description: Base content default: header, activity, community, repositories, metadata repositories: description: Repositories to fetch default: 100 repositories_batch: description: Repositories to fetch at a time default: 100 repositories_forks: description: Include forks default: no repositories_affiliations: description: Repositories affiliations default: owner repositories_skipped: description: Default skipped repositories default: "" users_ignored: description: Default ignored users default: github-actions[bot], dependabot[bot], dependabot-preview[bot] commits_authoring: description: Name, username, email addresses that has been used for authoring commits default: .user.login # ==================================================================================== # 🧱 Core # User account personal token # No additional scopes are needed unless you want to include private repositories metrics # Some plugins may also require additional scopes # ──────────────────────────────────────────────────────────────── # If you're only using plugins which don't really require a GitHub token, you may pass "NOT_NEEDED" as value token: description: GitHub Personal Token required: true # GitHub username # Defaults to "token" owner user: description: GitHub username default: "" # GitHub repository # Compute metrics for a repository instead ("user" being the repository owner) # Check https://github.com/lowlighter/metrics/blob/master/source/templates/repository/README.md for more informations repo: description: GitHub repository default: "" # Set to "${{ github.token }}" or "${{ secrets.GITHUB_TOKEN }}" # GITHUB_TOKEN is a special auto-generated token restricted to current repository, which is used to push files in it committer_token: description: GitHub Token used to commit metrics default: ${{ github.token }} # Branch used to commit rendered metrics committer_branch: description: Branch used to commit rendered metrics default: "" # Commit message # Use "${filename}" to display filename committer_message: description: Commit message default: Update ${filename} - [Skip GitHub Action] # Instead of saving metrics to a repository, it's possible to save them to a gist to avoid "commits pollution" # Gist must be created prior and you must pass its identifier in the following option # Set "gist" in "output_action" to use this option committer_gist: description: Gist used to store metrics default: "" # Rendered metrics output path, relative to repository's root # When using "*", the correct extension will automatically on "config_output" value filename: description: Rendered metrics output path default: github-metrics.* # Rendered markdown output path (when using a markdown template) # It can be either a local path or a link (e.g. raw.githubusercontent.com) markdown: description: Rendered markdown output path default: TEMPLATE.md # Rendered markdown file cache (when using a markdown template) markdown_cache: description: Rendered markdown file cache default: .cache # Output action output_action: description: Output action default: commit # Output condition output_condition: description: Output condition default: always # Optimize SVG image to reduce its filesize # Some templates may not support this option optimize: description: SVG optimization default: css, xml # Setup additional templates from remote repositories setup_community_templates: description: Additional community templates to setup default: "" # Template to use # To use community template, prefix its name with "@" template: description: Template to use default: classic # Additional query parameters (JSON string) # Some templates may require additional parameters which you can specify here # Do not use this option to pass plugins parameters as they'll be overwritten by the other options query: description: Additional query parameters default: "{}" # Define additional CSS that will be injected in used template # Example: # config_extras_css꞉ | # h2 { # color: red; # } extras_css: description: Extra CSS default: "" # Timezone used by metrics # See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones config_timezone: description: Timezone used default: "" # Specify in which order metrics content will be displayed # If you omit some partials, they'll be appended at the end in default order # See "partials/_.json" of each template for a list of supported partials config_order: description: Configure content order default: "" # Use twemojis instead of emojis # May increase filesize but emojis will be rendered the same across all platforms config_twemoji: description: Use twemojis instead of emojis default: no # Render GitHub custom emojis (like ":octocat:", see full list at https://api.github.com/emojis) # May increase filesize config_gemoji: description: Use GitHub custom emojis default: yes # Render display width config_display: description: Render display width default: regular # Enable SVG CSS animations config_animations: description: SVG CSS animations default: yes # Encode images links into base64 data # Advised to be true when generating images and false when generating texts or JSON config_base64: description: Encode images links into base64 data default: yes # Configure padding for output image (percentage value) # It can be used to add padding to generated metrics if rendering is cropped or has too much empty space # Specify one value (for both width and height) or two values (one for width and one for height) config_padding: description: Image padding default: 0, 8 + 11% # Metrics output format config_output: description: Output image format default: auto # Number of retries in case rendering fail retries: description: Number of retries default: 3 # Time to wait (in seconds) before each retry retries_delay: description: Time to wait (in seconds) before each retry default: 300 # Number of retries in case output action fail retries_output_action: description: Number of retries (output action) default: 5 # Time to wait (in seconds) before each retry (output action) retries_delay_output_action: description: Time to wait (in seconds) before each retry (output action) default: 120 # Time to wait (in seconds) at the end of job # Use this to avoid triggering abuse mechanics on large workflows delay: description: Use this to avoid triggering abuse mechanics on large workflows default: 0 # Use a pre-built image from GitHub registry when using unreleased versions of "lowlighter/metrics" # This option has no effect on forks (images will always be rebuilt from Dockerfile) # See https://github.com/users/lowlighter/packages/container/package/metrics for more information use_prebuilt_image: description: Use pre-built image from GitHub registry default: yes # Throw on plugins errors # If disabled, metrics will handle errors gracefully with a message in rendered metrics plugins_errors_fatal: description: Die on plugins errors default: no # Debug mode # Note that this will automatically be enabled if job fails debug: description: Debug logs default: no # Ensure SVG can be correctly parsed after generation verify: description: Verify SVG default: no # Debug flags debug_flags: description: Debug flags default: "" # Dry-run mode (perform generation without output) # Unlike "output_action" set to "none", output file won't be available in "/metrics_renders" dryrun: description: Enable dry-run default: no # Experimental features # Note that no backward compatibility are guaranteed for these features experimental_features: description: Experimental features default: "" # Use mocked data to bypass external APIs use_mocked_data: description: Use mocked data instead of live APIs default: no # ==================================================================================== # 📅 Isometric commit calendar plugin_isocalendar: description: Enable isocalendar plugin default: no plugin_isocalendar_duration: description: Time range default: half-year # ==================================================================================== # 🈷️ Most used languages plugin_languages: description: Enable languages plugin default: no plugin_languages_ignored: description: Ignored languages default: "" plugin_languages_skipped: description: Skipped repositories default: "" plugin_languages_limit: description: Display limit default: 8 plugin_languages_threshold: description: Display threshold (percentage) default: 0% plugin_languages_colors: description: Custom languages colors default: github plugin_languages_aliases: description: Custom languages names default: "" plugin_languages_sections: description: Displayed sections default: most-used plugin_languages_details: description: Additional details default: "" plugin_languages_indepth: description: Indepth mode (⚠️ read documentation first) default: false plugin_languages_analysis_timeout: description: Indepth mode - Analysis timeout default: 15 plugin_languages_categories: description: Indepth mode - Displayed categories (most-used section) default: markup, programming plugin_languages_recent_categories: description: Indepth mode - Displayed categories (recently-used section) default: markup, programming plugin_languages_recent_load: description: Events to load (recently-used section) default: 300 plugin_languages_recent_days: description: Events maximum age (day, recently-used section) default: 14 # ==================================================================================== # 📌 Starred topics plugin_topics: description: Enable topics plugin default: no plugin_topics_mode: description: "Display mode:" default: starred plugin_topics_sort: description: "Sorting method:" default: stars plugin_topics_limit: description: Display limit default: 15 # ==================================================================================== # 🌟 Recently starred repositories plugin_stars: description: Enable stars plugin default: no plugin_stars_limit: description: Display limit default: 4 # ==================================================================================== # 📜 Repository licenses plugin_licenses: description: Enable licenses plugin default: no plugin_licenses_setup: description: Setup command default: "" plugin_licenses_ratio: description: Display used licenses ratio default: no plugin_licenses_legal: description: Display permissions, limitations and conditions about used licenses default: yes # ==================================================================================== # 💡 Coding habits # Enable or disable plugin plugin_habits: description: Display coding habits metrics default: no # Number of events to use to computes habits # Using more will result in more accurate metrics, but you may hit GitHub rate-limit more easily plugin_habits_from: description: Number of events to use default: 200 # Filter used events to compute habits by age plugin_habits_days: description: Maximum event age default: 14 # Display tidbits about your most active hours/days, indents used (spaces/tabs), etc. # This is deduced from your recent activity plugin_habits_facts: description: Display coding habits collected facts based on recent activity default: yes # Display charts of most active time of the day and most active day of the week # Also display languages recently used (this is not the same as plugin_languages, as the latter is an all-time stats) plugin_habits_charts: description: Display coding habits charts based on recent activity default: no # Trim unused hours on daily chart plugin_habits_trim: description: Trim unused hours on daily chart default: no # ==================================================================================== # 🏅 Repository contributors plugin_contributors: description: Enable contributors plugin default: no plugin_contributors_base: description: Base reference (commit, tag, branch, etc.) default: "" plugin_contributors_head: description: Head reference (commit, tag, branch, etc.) default: master plugin_contributors_ignored: description: Ignored users default: "" plugin_contributors_contributions: description: Toggle number of contributions display default: no plugin_contributors_sections: description: Displayed sections default: contributors plugin_contributors_categories: description: Configure contribution categories default: | { "📚 Documentation": ["README.md", "docs/**"], "💻 Code": ["source/**", "src/**"], "#️⃣ Others": ["*"] } # ==================================================================================== # 🎟️ Follow-up of issues and pull requests plugin_followup: description: Enable followup plugin default: no plugin_followup_sections: description: Displayed sections default: repositories plugin_followup_indepth: description: Indepth analysis default: no # ==================================================================================== # 🎭 Comment reactions plugin_reactions: description: Enable reactions plugin default: no plugin_reactions_limit: description: Display limit (issues and pull requests comments) default: 200 plugin_reactions_limit_issues: description: Display limit (issues and pull requests, first comment) default: 100 plugin_reactions_limit_discussions: description: Display limit (discussions, first comment) default: 100 plugin_reactions_limit_discussions_comments: description: Display limit (discussions comments) default: 100 plugin_reactions_days: description: Comments maximum age default: 0 plugin_reactions_display: description: Display mode default: absolute plugin_reactions_details: description: Additional details default: "" plugin_reactions_ignored: description: Ignored users default: "" # ==================================================================================== # 🧑‍🤝‍🧑 People plugin # Enable or disable plugin plugin_people: description: Display GitHub users from various affiliations default: no # Number of users to display per section plugin_people_limit: description: Maximum number of user to display default: 24 # Size of displayed user's avatar plugin_people_size: description: Size of displayed GitHub users' avatars default: 28 # List of section to display # Ordering will be kept plugin_people_types: description: Affiliations to display default: followers, following # When displaying "thanks" section, specified users list will be displayed # This is useful to craft "Special thanks" badges plugin_people_thanks: description: GitHub users to personally thanks default: "" # Add specified users to GitHub sponsors ("sponsors" must be specified in "plugin_people_types") # This is useful to list sponsors from unsupported GitHub sponsors sources plugin_people_sponsors_custom: description: Custom GitHub sponsors default: "" # Use GitHub identicons instead of users' avatar (for privacy purposes) plugin_people_identicons: description: Use identicons instead of avatars default: no # Shuffle users for varied outputs # If "plugin_people_limit" is set, plugin will fetch up to 10 ten times limit to ensure output is different each time plugin_people_shuffle: description: Shuffle users default: no # ==================================================================================== # ✨ Stargazers over last weeks plugin_stargazers: description: Enable stargazers plugin default: no # ==================================================================================== # 🗂️ Active projects plugin_projects: description: Enable projects plugin default: no plugin_projects_limit: description: Display limit default: 4 plugin_projects_repositories: description: List of repositories projects default: "" plugin_projects_descriptions: description: Toggle projects descriptions display default: no # ==================================================================================== # ♐ Code snippet of the day plugin_code: description: Enable code plugin default: no plugin_code_lines: description: Display limit for code snippets default: 12 plugin_code_load: description: Events to load default: 100 plugin_code_visibility: description: Events visibility default: public plugin_code_skipped: description: Skipped repositories default: "" plugin_code_languages: description: Restrict display to specific languages default: "" # ==================================================================================== # 📰 Recent activity plugin_activity: description: Enable activity plugin default: no plugin_activity_limit: description: Display limit default: 5 plugin_activity_load: description: Events to load default: 300 plugin_activity_days: description: Events maximum age default: 14 plugin_activity_visibility: description: Events visibility default: all plugin_activity_timestamps: description: Display events timestamps default: no plugin_activity_skipped: description: Skipped repositories default: "" plugin_activity_ignored: description: Ignored users default: "" plugin_activity_filter: description: Events types default: all # ==================================================================================== # 🏆 Achievements plugin_achievements: description: Enable achievements plugin default: no plugin_achievements_threshold: description: Display rank threshold default: C plugin_achievements_secrets: description: Display secrets achievements default: yes plugin_achievements_display: description: Display style default: detailed plugin_achievements_limit: description: Display limit default: 0 plugin_achievements_ignored: description: Hide specified achievements default: "" plugin_achievements_only: description: Restrict display to specified achievements default: "" # ==================================================================================== # 🎩 Notable contributions plugin_notable: description: Enable notable plugin default: no plugin_notable_filter: description: Query filter default: "" plugin_notable_from: description: Filter by repository owner account type default: organization plugin_notable_repositories: description: Toggle repository name display default: no plugin_notable_indepth: description: Indepth mode default: no # ==================================================================================== # 💬 Discussions plugin_discussions: description: Enable discussions plugin default: no plugin_discussions_categories: description: Toggle discussion categories display default: yes plugin_discussions_categories_limit: description: Display limit (categories) default: 0 # ==================================================================================== # 💭 GitHub Community Support plugin_support: description: Enable support plugin default: no # ==================================================================================== # 👨‍💻 Lines of code changed plugin_lines: description: Enable lines plugin default: no plugin_lines_skipped: description: Skipped repositories default: "" # ==================================================================================== # 🧮 Repositories traffic plugin_traffic: description: Enable traffic plugin default: no plugin_traffic_skipped: description: Skipped repositories default: "" # ==================================================================================== # 📓 Repositories plugin_repositories: description: Enable repositories plugin default: no plugin_repositories_featured: description: List of featured repositories default: "" # ==================================================================================== # 🎫 Gists plugin_gists: description: Enable gists plugin default: no # ==================================================================================== # 🙋 Introduction # Enable or disable plugin plugin_introduction: description: Display account or repository introduction default: no # Display introduction section title plugin_introduction_title: description: Display introduction section title default: yes # ==================================================================================== # 💕 GitHub Sponsors plugin_sponsors: description: Enable sponsors plugin default: no plugin_sponsors_sections: description: Displayed sections default: goal, about # ==================================================================================== # 💫 Starlists plugin_starlists: description: Enable starlists plugin default: no plugin_starlists_limit: description: Display limit (star lists) default: 2 plugin_starlists_limit_repositories: description: Display limit (repositories per star list) default: 2 plugin_starlists_shuffle_repositories: description: Shuffle data for varied outputs default: yes plugin_starlists_ignored: description: Skipped star lists (case insensitive) default: "" plugin_starlists_only: description: Restrict display to specified star lists (case insensitive) default: "" # ==================================================================================== # 🌇 GitHub Skyline 3D calendar plugin_skyline: description: Enable skyline plugin default: no plugin_skyline_year: description: Displayed year default: current-year plugin_skyline_frames: description: Frames count default: 60 plugin_skyline_quality: description: Image quality default: 0.5 plugin_skyline_compatibility: description: Compatibility mode default: no # ==================================================================================== # ⏱️ Website performances # Enable or disable plugin plugin_pagespeed: description: Display a website Google PageSpeed metrics default: no # Website to audit with PageSpeed plugin_pagespeed_url: description: Audited website default: .user.website # Display the following additional metrics from audited website: # First Contentful Paint, Speed Index, Largest Contentful Paint, Time to Interactive, Total Blocking Time, Cumulative Layout Shift # See https://web.dev/performance-scoring/ and https://googlechrome.github.io/lighthouse/scorecalc/ for more informations plugin_pagespeed_detailed: description: Detailed audit result default: no # Display a screenshot of audited website # May increases significantly filesize plugin_pagespeed_screenshot: description: Display a screenshot of your website default: no # PageSpeed API token # This is optional, but providing it will avoid hitting rate-limiter # See https://developers.google.com/speed/docs/insights/v5/get-started for more informations plugin_pagespeed_token: description: PageSpeed token default: "" # ==================================================================================== # 🎼 Music plugin # Enable or disable plugin plugin_music: description: Display your music tracks default: no # Name of music provider # This is optional for "playlist" mode (it can be deduced automatically from "plugin_music_playlist" url) # This is required in other modes plugin_music_provider: description: Music provider default: "" # Music provider token # This may be required depending on music provider used and plugin mode # - "apple" : not required # - "spotify" : required for "recent" or "top" mode, format is "client_id, client_secret, refresh_token" # - "lastfm" : required, format is "api_key" # - "youtube" : required for "recent" mode, format is "cookie" plugin_music_token: description: Music provider personal token default: "" # Plugin mode plugin_music_mode: description: Plugin mode default: "" # Embed playlist url (i.e. url used by music player iframes) plugin_music_playlist: description: Embed playlist url default: "" # Number of music tracks to display plugin_music_limit: description: Maximum number of tracks to display default: 4 # Display when track was last played plugin_music_played_at: description: Display when the track was played default: no # Time range for "top" mode plugin_music_time_range: description: Time period for top mode default: short # Option for "top" mode to select tracks or artists plugin_music_top_type: description: Whether to show tracks or artists in top mode default: tracks # Username on music provider service plugin_music_user: description: Music provider username default: .user.login # ==================================================================================== # 🗨️ StackOverflow plugin plugin_stackoverflow: description: Enable stackoverflow plugin default: no plugin_stackoverflow_user: description: Stackoverflow user id default: 0 plugin_stackoverflow_sections: description: Displayed sections default: answers-top, questions-recent plugin_stackoverflow_limit: description: Display limit (per section) default: 2 plugin_stackoverflow_lines: description: Display limit for questions and answers default: 4 plugin_stackoverflow_lines_snippet: description: Display limit for code snippets default: 2 # ==================================================================================== # 🌸 Anilist watch list and reading list plugin_anilist: description: Enable aniList plugin default: no plugin_anilist_medias: description: Display medias types default: anime, manga plugin_anilist_sections: description: Displayed sections default: favorites plugin_anilist_limit: description: Display limit (medias) default: 2 plugin_anilist_limit_characters: description: Display limit (characters) default: 22 plugin_anilist_shuffle: description: Shuffle data for varied outputs default: yes plugin_anilist_user: description: AniList login default: .user.login # ==================================================================================== # 🐤 Latest tweets plugin_tweets: description: Enable tweets plugin default: no plugin_tweets_token: description: Twitter API token default: "" plugin_tweets_attachments: description: Display tweets attachments (images, video previews, etc.) default: no plugin_tweets_limit: description: Display limit default: 2 plugin_tweets_user: description: Twitter username default: .user.twitter # ==================================================================================== # ✒️ Recent posts plugin_posts: description: Enable posts plugin default: no plugin_posts_source: description: External source default: "" plugin_posts_descriptions: description: Toggle posts descriptions display default: no plugin_posts_covers: description: Toggle posts cover images display default: no plugin_posts_limit: description: Display limit default: 4 plugin_posts_user: description: External source username default: .user.login # ==================================================================================== # 🗼 Rss feed plugin_rss: description: Enable rss plugin default: no plugin_rss_source: description: RSS feed source default: "" plugin_rss_limit: description: Display limit default: 4 # ==================================================================================== # ⏰ WakaTime plugin plugin_wakatime: description: Enable wakatime plugin default: no plugin_wakatime_token: description: WakaTime API token default: "" plugin_wakatime_days: description: Time range default: 7 plugin_wakatime_sections: description: Displayed sections default: time, projects, projects-graphs, languages, languages-graphs, editors, os plugin_wakatime_limit: description: Display limit (per graph) default: 5 plugin_wakatime_url: description: WakaTime url default: https://wakatime.com plugin_wakatime_user: description: WakaTime username default: current # ==================================================================================== # 💹 Stock prices plugin_stock: description: Enable stock plugin default: no plugin_stock_token: description: Yahoo Finance token default: "" plugin_stock_symbol: description: Company stock symbol default: "" plugin_stock_duration: description: Time range (relative to current date) default: 1d plugin_stock_interval: description: Time interval between points default: 5m # ==================================================================================== # 💉 Nightscout plugin_nightscout: description: Enable nightscout plugin default: no plugin_nightscout_url: description: Nightscout URL default: https://example.herokuapp.com plugin_nightscout_datapoints: description: Number of datapoints shown the graph default: 12 plugin_nightscout_lowalert: description: Threshold for low blood sugar default: 80 plugin_nightscout_highalert: description: Threshold for high blood sugar default: 180 plugin_nightscout_urgentlowalert: description: Threshold for urgently low blood sugar default: 50 plugin_nightscout_urgenthighalert: description: Threshold for urgently high blood sugar default: 250 # ==================================================================================== # 💩 PoopMap plugin plugin_poopmap: description: Enable poopmap plugin default: no plugin_poopmap_token: description: PoopMap API token default: "" plugin_poopmap_days: description: Time range default: 7 # ==================================================================================== # 📸 Website screenshot plugin_screenshot: description: Enable screenshot plugin default: no plugin_screenshot_title: description: Title caption default: Screenshot plugin_screenshot_url: description: Website url default: "" plugin_screenshot_selector: description: CSS Selector default: body plugin_screenshot_background: description: Display background default: yes # ==================================================================================== # Action metadata name: Metrics embed author: lowlighter description: An infographics generator with 30+ plugins and 200+ options to display stats about your GitHub account! branding: icon: user-check color: gray-dark # The action will parse its name to check if it's the official action or if it's a forked one # On the official action, it'll use the docker image published on GitHub registry when using a released version, allowing faster runs # On a forked action, it'll rebuild the docker image from Dockerfile to take into account changes you made runs: using: composite steps: - run: | # Create environment file from inputs and GitHub variables echo "::group::Metrics docker image setup" echo "GitHub action: $METRICS_ACTION ($METRICS_ACTION_PATH)" cd $METRICS_ACTION_PATH touch .env for INPUT in $(echo $INPUTS | jq -r 'to_entries|map("INPUT_\(.key|ascii_upcase)=\(.value|@uri)")|.[]'); do echo $INPUT >> .env done env | grep -E '^(GITHUB|ACTIONS|CI|TZ)' >> .env echo "Environment variables: loaded" # Renders output folder METRICS_RENDERS="/metrics_renders" sudo mkdir -p $METRICS_RENDERS echo "Renders output folder: $METRICS_RENDERS" # Source repository (picked from action name) METRICS_SOURCE=$(echo $METRICS_ACTION | sed -E 's/metrics.*?$//g' | sed -E 's/_//g') echo "Source: $METRICS_SOURCE" # Version (picked from package.json) METRICS_VERSION=$(grep -Po '(?<="version": ").*(?=")' package.json) echo "Version: $METRICS_VERSION" # Image tag (extracted from version or from env) METRICS_TAG=v$(echo $METRICS_VERSION | sed -r 's/^([0-9]+[.][0-9]+).*/\1/') echo "Image tag: $METRICS_TAG" # Image name # Official action if [[ $METRICS_SOURCE == "lowlighter" ]]; then # Use registry with pre-built images if [[ ! $METRICS_USE_PREBUILT_IMAGE =~ ^([Ff]alse|[Oo]ff|[Nn]o|0)$ ]]; then # Is released version set +e METRICS_IS_RELEASED=$(expr $(expr match $METRICS_VERSION .*-beta) == 0) set -e echo "Is released version: $METRICS_IS_RELEASED" if [[ "$METRICS_IS_RELEASED" -eq "0" ]]; then METRICS_TAG="$METRICS_TAG-beta" echo "Image tag (updated): $METRICS_TAG" fi METRICS_IMAGE=ghcr.io/lowlighter/metrics:$METRICS_TAG echo "Using pre-built version $METRICS_TAG, will pull docker image from GitHub registry" if ! docker image pull $METRICS_IMAGE; then echo "Failed to fetch docker image from GitHub registry, will rebuild it locally" METRICS_IMAGE=metrics:$METRICS_VERSION fi # Rebuild image else echo "Using an unreleased version ($METRICS_VERSION)" METRICS_IMAGE=metrics:$METRICS_VERSION fi # Forked action else echo "Using a forked version" METRICS_IMAGE=metrics:forked-$METRICS_VERSION fi echo "Image name: $METRICS_IMAGE" # Build image if necessary set +e docker image inspect $METRICS_IMAGE METRICS_IMAGE_NEEDS_BUILD="$?" set -e if [[ "$METRICS_IMAGE_NEEDS_BUILD" -gt "0" ]]; then echo "Image $METRICS_IMAGE is not present locally, rebuilding it from Dockerfile" docker build -t $METRICS_IMAGE . else echo "Image $METRICS_IMAGE is present locally" fi echo "::endgroup::" # Run docker image with current environment docker run --init --volume $GITHUB_EVENT_PATH:$GITHUB_EVENT_PATH --volume $METRICS_RENDERS:/renders --env-file .env $METRICS_IMAGE rm .env shell: bash env: METRICS_ACTION: ${{ github.action }} METRICS_ACTION_PATH: ${{ github.action_path }} METRICS_USE_PREBUILT_IMAGE: ${{ inputs.use_prebuilt_image }} INPUTS: ${{ toJson(inputs) }} TZ: ${{ inputs.config_timezone }}