Skip to content
This repository has been archived by the owner on Oct 17, 2021. It is now read-only.

NSHipster/swift-log-github-actions

Repository files navigation

LoggingGitHubActions

A logging backend for SwiftLog that translates logging messages into workflow commands for GitHub Actions.

Requirements

  • Swift 5.1+

Usage

Conditionally Bootstrapping GitHubActionsLogHandler

import Logging
import LoggingGitHubActions
import struct Foundation.ProcessInfo

LoggingSystem.bootstrap { label in
    if ProcessInfo.processInfo.environment["GITHUB_ACTIONS"] == "true" {
        return GitHubActionsLogHandler.standardOutput(label: label)
    } else {
        return StreamLogHandler.standardOutput(label: label)
    }
}

Using a Logger

Create an instance of Logger and log messages accordingly. When your program is run as a step in a GitHub Actions workflow, warning and error messages will be formatted in such a way that it'll be surfaced in the GitHub Actions UI.

import Logging

let logger = Logger(label: "com.example.MyApp")
logger.error("Something went wrong")
// Prints "::error file=Sources/main.swift,line=5::Something went wrong

GitHub Actions UI

Installation

Swift Package Manager

Add swift-log-github-actions as a dependency to your Package.swift file.

.package(url: "https://github.com/NSHipster/swift-log-github-actions.git", from: "1.0.0")

Add "LoggingGitHubActions to your target's dependencies.

.target(name: "Example",
        dependencies: ["LoggingGitHubActions"])

License

MIT

Contact

Mattt (@mattt)