Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aws-actions/sustainability-scanner
Runs AWS Sustainability Scanner against infrastructure-as-code.
https://github.com/aws-actions/sustainability-scanner
Last synced: 3 months ago
JSON representation
Runs AWS Sustainability Scanner against infrastructure-as-code.
- Host: GitHub
- URL: https://github.com/aws-actions/sustainability-scanner
- Owner: aws-actions
- License: mit-0
- Created: 2023-08-09T01:27:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-27T10:37:54.000Z (about 1 year ago)
- Last Synced: 2024-05-29T23:34:07.059Z (9 months ago)
- Language: Shell
- Homepage:
- Size: 19.5 KB
- Stars: 16
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# AWS Sustainability Scanner GitHub action
This GitHub Action runs [AWS Sustainability Scanner](https://github.com/awslabs/sustainability-scanner) against infrastructure-as-code to identify sustainability best practices, generates a report with a score and suggested improvements to apply to your template.
## Usage
In your Github worflows, under steps, add the following:
```yml
name: AWS Sustainability Scanner
uses: aws-actions/sustainability-scanner@v1
with:
```## Inputs
### `file`
Path to the specific file you want to scan.
### `directory`
Path to the directory you want to scan. Every `.json`, `.yml` and `.yaml` files that this directory contain will be scan.
### `rules_file`
Path to your `.json` file to extend the Susscan rules set.
## Outputs
### `results`
The results from the scanner. See how to use it in this [example](#use-output-for-commenting-pull-requests).
## Example usage
### Simple usage with one specific file
```yml
name: susscan# Controls when the workflow will run
on:
# Triggers the workflow on push events but only for the "main" branch
push:
branches: "main"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "scan"
scan:
# The type of runner that the job will run on
runs-on: ubuntu-latest# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so follow-up steps can access it
- uses: actions/checkout@v3# Run AWS Sustainability Scanner against template.yaml
- name: AWS Sustainability Scanner
uses: aws-actions/sustainability-scanner@v1
with:
file: 'template.yaml'
```### Usage with a directory and custom rules set
```yml
name: susscanon:
push:
branches: "main"
workflow_dispatch:jobs:
scan:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v3# Run AWS Sustainability Scanner against "my-cf-stacks" folder with an additional rules set
- name: AWS Sustainability Scanner
uses: aws-actions/sustainability-scanner@v1
with:
directory: 'my-cf-stacks'
rules-file: 'tests/additional-rules.json'
```### Use output for commenting pull requests
```yml
name: susscanon:
pull_request:jobs:
scan:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v3- name: AWS Sustainability Scanner
uses: aws-actions/sustainability-scanner@v1
id: scanner
with:
file: 'template.yaml'# Use scanner output to create a comment on pull request
- name: Comment on pull request
uses: actions/github-script@v7
with:
script: |
result=${{ (steps.scanner.outputs.results) }}
const score = result.sustainability_score
const number_failed_rules = result.failed_rules.lengthif (score === 0) {
body = `✅ Your current sustainability score is **${score}**. Sustainability scanner did not find any improvements to apply to your template.`
} else {
body = `❌ Your current sustainability score is **${score}**. Sustainability scanner suggests **${number_failed_rules}** improvements to apply to your template.\nCheck out the details of the sustainability scanner here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}`
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
})
```## Security
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
## License
This library is licensed under the MIT-0 License. See the LICENSE file.