generated from myHerbDev/DevSphere
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 740e061
Showing
2 changed files
with
135 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# This workflow installs the latest version of Terraform CLI and configures the Terraform CLI configuration file | ||
# with an API token for Terraform Cloud (app.terraform.io). On pull request events, this workflow will run | ||
# `terraform init`, `terraform fmt`, and `terraform plan` (speculative plan via Terraform Cloud). On push events | ||
# to the "main" branch, `terraform apply` will be executed. | ||
# | ||
# Documentation for `hashicorp/setup-terraform` is located here: https://github.com/hashicorp/setup-terraform | ||
# | ||
# To use this workflow, you will need to complete the following setup steps. | ||
# | ||
# 1. Create a `main.tf` file in the root of this repository with the `remote` backend and one or more resources defined. | ||
# Example `main.tf`: | ||
# # The configuration for the `remote` backend. | ||
# terraform { | ||
# backend "remote" { | ||
# # The name of your Terraform Cloud organization. | ||
# organization = "example-organization" | ||
# | ||
# # The name of the Terraform Cloud workspace to store Terraform state files in. | ||
# workspaces { | ||
# name = "example-workspace" | ||
# } | ||
# } | ||
# } | ||
# | ||
# # An example resource that does nothing. | ||
# resource "null_resource" "example" { | ||
# triggers = { | ||
# value = "A example resource that does nothing!" | ||
# } | ||
# } | ||
# | ||
# | ||
# 2. Generate a Terraform Cloud user API token and store it as a GitHub secret (e.g. TF_API_TOKEN) on this repository. | ||
# Documentation: | ||
# - https://www.terraform.io/docs/cloud/users-teams-organizations/api-tokens.html | ||
# - https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets | ||
# | ||
# 3. Reference the GitHub secret in step using the `hashicorp/setup-terraform` GitHub Action. | ||
# Example: | ||
# - name: Setup Terraform | ||
# uses: hashicorp/setup-terraform@v1 | ||
# with: | ||
# cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} | ||
|
||
name: 'Terraform' | ||
|
||
on: | ||
push: | ||
branches: [ "main" ] | ||
pull_request: | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
terraform: | ||
name: 'Terraform' | ||
runs-on: ubuntu-latest | ||
environment: production | ||
|
||
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | ||
defaults: | ||
run: | ||
shell: bash | ||
|
||
steps: | ||
# Checkout the repository to the GitHub Actions runner | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token | ||
- name: Setup Terraform | ||
uses: hashicorp/setup-terraform@v1 | ||
with: | ||
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} | ||
|
||
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc. | ||
- name: Terraform Init | ||
run: terraform init | ||
|
||
# Checks that all Terraform configuration files adhere to a canonical format | ||
- name: Terraform Format | ||
run: terraform fmt -check | ||
|
||
# Generates an execution plan for Terraform | ||
- name: Terraform Plan | ||
run: terraform plan -input=false | ||
|
||
# On push to "main", build or change infrastructure according to Terraform configuration files | ||
# Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks | ||
- name: Terraform Apply | ||
if: github.ref == 'refs/heads/"main"' && github.event_name == 'push' | ||
run: terraform apply -auto-approve -input=false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# DevSphere | ||
DevSphere: Open-Source Eco-Friendly Codes, Apps, Scripts, and Solutions for Developers | ||
DevSphere is an open-source initiative that aims to provide developers with a comprehensive collection of eco-friendly codes, apps, scripts, and solutions to minimize their environmental impact while coding. | ||
|
||
Mission | ||
Our mission is to empower developers to make informed choices and adopt sustainable practices when developing software applications. By integrating sustainability into the development process from the outset, we can collectively reduce the environmental footprint of the software industry. | ||
|
||
Scope | ||
DevSphere encompasses a wide range of eco-friendly resources, including: | ||
|
||
Energy-efficient coding practices: Techniques for reducing energy consumption during software development and execution. | ||
|
||
Resource-optimized algorithms: Algorithms that minimize resource usage, such as CPU, memory, and network bandwidth. | ||
|
||
Green cloud computing: Strategies for utilizing cloud computing resources in an environmentally responsible manner. | ||
|
||
Sustainable software design: Approaches to designing software applications with sustainability in mind, considering factors such as lifecycle analysis and waste reduction. | ||
|
||
Contributions | ||
We welcome contributions from developers worldwide to expand and enhance the DevSphere repository. Submissions can include: | ||
|
||
Eco-friendly code snippets: Examples of code demonstrating energy efficiency, resource optimization, or other sustainable practices. | ||
|
||
Open-source eco-friendly applications: Software applications designed with sustainability in mind, covering various domains such as web development, mobile development, and data science. | ||
|
||
Scripts and tools for eco-friendly development: Tools that assist developers in adopting sustainable practices, such as energy consumption monitoring or code optimization tools. | ||
|
||
Documentation and tutorials: Educational resources that guide developers on integrating sustainability into their development workflows. | ||
|
||
Impact | ||
The adoption of eco-friendly coding practices and solutions can have a significant positive impact on the environment, including: | ||
|
||
Reduced energy consumption: By optimizing code and utilizing energy-efficient algorithms, developers can lower the energy demands of software applications. | ||
|
||
Minimized resource usage: Efficient resource utilization can reduce the strain on computing infrastructure, leading to lower energy consumption and resource conservation. | ||
|
||
Sustainable cloud computing practices: Choosing eco-friendly cloud providers and optimizing cloud resource usage can minimize the environmental impact of cloud-based applications. | ||
|
||
Sustainable software design: Designing software with sustainability in mind can extend the lifespan of applications, reduce waste, and minimize environmental hazards associated with hardware disposal. | ||
|
||
Join the Movement | ||
We invite developers worldwide to join the DevSphere initiative and contribute to the collective effort towards sustainable software development. Together, we can make a positive impact on the environment and promote a more sustainable future for the software industry. |