Skip to content

Commit

Permalink
chore: use script run for running tests and linter.
Browse files Browse the repository at this point in the history
Signed-off-by: Tiago Natel <[email protected]>
  • Loading branch information
i4ki committed Mar 3, 2024
1 parent d77f1e7 commit afa5e96
Show file tree
Hide file tree
Showing 84 changed files with 913 additions and 144 deletions.
117 changes: 0 additions & 117 deletions .github/workflows/ci.yml

This file was deleted.

65 changes: 65 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Copyright 2024 Terramate GmbH
# SPDX-License-Identifier: MPL-2.0

name: Terramate Deployment
on:
push:
branches:
- main

jobs:
deploy:
name: Run all tests and create a Terramate Cloud Deployment

permissions:
id-token: write
contents: read
pull-requests: read

runs-on: "ubuntu-20.04"

steps:
### Check out the code

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

### Install tooling

- name: Install Terramate
uses: terramate-io/terramate-action@v1

- name: build
run: make build

- name: check cloud info
run: ./bin/terramate run --tags golang --no-recursive -- ./bin/terramate cloud info || true
env:
TMC_API_HOST: api.stg.terramate.io

### Check for changed stacks

- name: List changed stacks
id: list
run: terramate list --changed

- name: checking go mod tidyness
if: steps.list.outputs.stdout
run: make mod/check

- name: linting code
if: steps.list.outputs.stdout
run: make lint

- name: checking license on source code
if: steps.list.outputs.stdout
run: make license/check

- name: check and test all
if: steps.list.outputs.stdout
run: ./bin/terramate script run --parallel=5 --changed --tags=golang -- test deploy
env:
TMC_API_HOST: api.stg.terramate.io
GITHUB_TOKEN: ${{ github.token }}
178 changes: 178 additions & 0 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# Copyright 2023 Terramate GmbH
# SPDX-License-Identifier: MPL-2.0

name: preview

on:
pull_request:
branches:
- main

jobs:
preview:
name: Changed Terramate stacks
runs-on: ${{ matrix.os }}

permissions:
id-token: write
contents: read
pull-requests: write

strategy:
matrix:
os: ["ubuntu-20.04", "macos-12", "macos-13"]
go: ["1.22"]

steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
fetch-depth: 0

- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

### Create Pull Request comment

- name: Prepare pull request preview comment
if: github.event.pull_request
uses: marocchino/sticky-pull-request-comment@v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
header: preview
message: |
## Preview of Project changes in ${{ github.event.pull_request.head.sha }}
:warning: preview is being created... please stand by!
### Install tooling

- name: Install Terramate
uses: terramate-io/terramate-action@i4k-fix-macos

# TODO(i4k): remove this once v0.5.0 is released.
- name: build Terramate
shell: bash
run: make build

- name: Check Terramate formatting
shell: bash
run: terramate fmt --check

- name: List changed stacks
shell: bash
id: list
run: terramate list --changed

- name: checking go mod tidyness
shell: bash
if: steps.list.outputs.stdout && matrix.os == 'ubuntu-20.04'
run: make mod/check

- name: linting code
shell: bash
if: steps.list.outputs.stdout && matrix.os == 'ubuntu-20.04'
run: make lint

- name: checking license on source code
shell: bash
if: steps.list.outputs.stdout && matrix.os == 'ubuntu-20.04'
run: make license/check

### Run the terramate preview script

- name: check cloud info
shell: bash
if: steps.list.outputs.stdout
run: terramate run --tags golang --no-recursive -- terramate cloud info || true
env:
TMC_API_HOST: api.stg.terramate.io

- name: Golang test preview
shell: bash
if: steps.list.outputs.stdout
run: |
echo >preview_url.txt "https://cloud.stg.terramate.io/o/test/review-requests"
./bin/terramate script run --parallel=10 --tags golang --changed -- test preview
env:
TMC_API_HOST: api.stg.terramate.io
GITHUB_TOKEN: ${{ github.token }}

### Update Pull Request comment

- name: Generate preview details
shell: bash
if: steps.list.outputs.stdout
id: comment
run: |
echo >>pr-comment.txt "## Preview of Terramate changes in ${{ github.event.pull_request.head.sha }}"
echo >>pr-comment.txt
echo >>pr-comment.txt "[:mag: View Details on Terramate Cloud]($(cat preview_url.txt))"
echo >>pr-comment.txt
echo >>pr-comment.txt "### Changed Stacks"
echo >>pr-comment.txt
echo >>pr-comment.txt '```bash'
echo >>pr-comment.txt "${{ steps.list.outputs.stdout }}"
echo >>pr-comment.txt '```'
cat pr-comment.txt >>$GITHUB_STEP_SUMMARY
- name: Generate preview when no stacks changed
shell: bash
if: success() && !steps.list.outputs.stdout
run: |
echo >>pr-comment.txt "## Preview of Terramate changes in ${{ github.event.pull_request.head.sha }}"
echo >>pr-comment.txt
echo >>pr-comment.txt "### Changed Stacks"
echo >>pr-comment.txt
echo >>pr-comment.txt 'No changed stacks, no detailed preview will be generated.'
cat pr-comment.txt >>$GITHUB_STEP_SUMMARY
- name: Generate preview when things failed
shell: bash
if: failure()
run: |
echo >>pr-comment.txt "## Preview of Terraform changes in ${{ github.event.pull_request.head.sha }}"
echo >>pr-comment.txt
echo >>pr-comment.txt "[:mag: View Details on Terramate Cloud]($(cat preview_url.txt))"
echo >>pr-comment.txt
echo >>pr-comment.txt "### Changed Stacks"
echo >>pr-comment.txt
echo >>pr-comment.txt '```bash'
echo >>pr-comment.txt "${{ steps.list.outputs.stdout }}"
echo >>pr-comment.txt '```'
echo >>pr-comment.txt ':boom: Generating preview failed. Please see details in Actions output.'
cat pr-comment.txt >>$GITHUB_STEP_SUMMARY
- name: Publish generated preview as GitHub commnent
uses: marocchino/sticky-pull-request-comment@v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
header: preview
path: pr-comment.txt

release_dry_run:
name: Release Dry Run

runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v4
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
fetch-depth: 0

- uses: actions/setup-go@v5
with:
go-version: '1.21'

- name: release dry run
run: make release/dry-run

required_checks:
needs:
- preview
runs-on: ubuntu-20.04
steps:
- uses: Kesin11/actions-timeline@v1
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'

Expand Down
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1 +1 @@
terramate 0.4.0
terramate 0.5.0-rc4
9 changes: 9 additions & 0 deletions cloud/deployment/stack.tm.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright 2024 Terramate GmbH
// SPDX-License-Identifier: MPL-2.0

stack {
name = "deployment"
description = "deployment"
tags = ["golang"]
id = "3705120e-4f6f-42a6-9c45-5a1ff31110da"
}
9 changes: 9 additions & 0 deletions cloud/drift/stack.tm.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright 2024 Terramate GmbH
// SPDX-License-Identifier: MPL-2.0

stack {
name = "drift"
description = "drift"
tags = ["golang"]
id = "8e7c2d56-0a76-42b7-b6c6-a9e85ba3f17e"
}
Loading

0 comments on commit afa5e96

Please sign in to comment.