Skip to content

Commit

Permalink
Make the ci workflow needlessly complicated
Browse files Browse the repository at this point in the history
  • Loading branch information
UnstoppableMango committed Jul 29, 2024
1 parent b291cc9 commit e6f976e
Show file tree
Hide file tree
Showing 3 changed files with 196 additions and 16 deletions.
203 changes: 195 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,88 @@ name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]

jobs:
setup:
name: Setup
runs-on: ubuntu-latest
outputs:
goreleaser: ${{ steps.goreleaser.outputs.any_changed }}
lint: ${{ steps.lint.outputs.any_changed }}
buf: ${{ steps.buf.outputs.any_changed }}
provisioner: ${{ steps.provisioner.outputs.any_changed || steps.test.outputs.any_changed || github.actor == 'renovate[bot]' }}
provider: ${{ steps.provider.outputs.any_changed || steps.test.outputs.any_changed || github.actor == 'renovate[bot]' }}
sdk: ${{ steps.sdk.outputs.any_changed || steps.provider.outputs.any_changed || github.actor == 'renovate[bot]' }}
test: ${{ steps.test.outputs.any_changed || steps.provisioner.outputs.any_changed || steps.provider.outputs.any_changed || github.actor == 'renovate[bot]' }}
steps:
- name: Chekcout
uses: actions/checkout@v4

- name: Goreleaser triggers
id: goreleaser
uses: tj-actions/changed-files@v44
with:
files: |
.goreleaser.yml
- name: Lint triggers
id: lint
uses: tj-actions/changed-files@v44
with:
files: |
provider/**/*.go
sdk/**/*.go
tests/**/*.go
- name: Buf triggers
id: buf
uses: tj-actions/changed-files@v44
with:
files: |
proto/**/*.proto
buf.gen.yaml
buf.lock
buf.yaml
- name: SDK triggers
id: sdk
uses: tj-actions/changed-files@v44
with:
files: |
sdk/**
- name: Provisioner triggers
id: provisioner
uses: tj-actions/changed-files@v44
with:
files: |
gen/**/*.go
provider/cmd/provisioner/**
provider/pkg/**
provider/*go*
- name: Provider triggers
id: provider
uses: tj-actions/changed-files@v44
with:
files: |
gen/**/*.go
provider/cmd/provider/**
provider/pkg/**
provider/*go*
- name: Test triggers
id: test
uses: tj-actions/changed-files@v44
with:
files: |
test/**
goreleaser:
if: needs.setup.outputs.goreleaser == 'true'
name: GoReleaser Check
runs-on: ubuntu-latest
needs: [setup]
steps:
- name: Chekcout
uses: actions/checkout@v4
Expand All @@ -20,9 +95,10 @@ jobs:
version: '~> v2'

lint:
if: github.event_name == 'pull_request'
if: needs.setup.outputs.lint == 'true'
name: Lint
runs-on: ubuntu-latest
needs: [setup]
strategy:
matrix:
module:
Expand All @@ -46,9 +122,10 @@ jobs:
working-directory: ${{ matrix.module }}

buf:
if: github.event_name == 'pull_request'
if: needs.setup.outputs.buf == 'true'
name: Buf
runs-on: ubuntu-latest
needs: [setup]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -79,10 +156,11 @@ jobs:
input: ${{ steps.diff.outputs.all_changed_files }}
against: "https://github.com/${GITHUB_REPOSITORY}.git#branch=main,ref=HEAD~1"


provisioner:
if: needs.setup.outputs.provisioner == 'true'
name: Provisioner
runs-on: ubuntu-latest
needs: [setup]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -107,16 +185,27 @@ jobs:
- name: Make
run: make provisioner

- name: Check worktree clean
uses: pulumi/git-status-check-action@v1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
- name: Upload binary
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: provisioner
path: bin/provisioner

provider:
if: needs.setup.outputs.provider == 'true'
name: Provider
runs-on: ubuntu-latest
needs: [setup]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -146,11 +235,109 @@ jobs:
- name: Make
run: make provider

- name: Check worktree clean
uses: pulumi/git-status-check-action@v1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
- name: Upload binary
uses: actions/upload-artifact@v4
with:
path: bin/pulumi-resource-baremetal
name: provider

sdk:
if: needs.setup.outputs.sdk == 'true'
name: SDKs
runs-on: ubuntu-latest
needs: [setup, provider]
strategy:
fail-fast: true
matrix:
dotnetversion:
- 6.0.x
goversion:
- 1.21.x
language:
- nodejs
- python
- dotnet
- go
nodeversion:
- 20.x
pythonversion:
- '3.11'
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags

- name: Install provider binary
uses: actions/download-artifact@v4
with:
name: provider
path: bin

- run: chmod +x bin/pulumi-resource-baremetal

- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl

- name: Install Pulumi CLI
uses: pulumi/[email protected]

- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.goversion }}
cache-dependency-path: sdk/go.sum

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.nodeversion }}

- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnetversion }}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.pythonversion }}

# Ensure you have consent first
- name: Touch the provider
run: make --touch bin/pulumi-resource-baremetal

- name: Generate SDK
run: make ${{ matrix.language }}_sdk

- name: Check worktree clean
uses: pulumi/git-status-check-action@v1
with:
allowed-changes: |-
sdk/**/pulumi-plugin.json
sdk/dotnet/Pulumi.*.csproj
sdk/go/**/pulumiUtilities.go
sdk/nodejs/package.json
sdk/python/pyproject.toml
test:
if: github.event_name == 'pull_request'
if: needs.setup.outputs.test == 'true'
name: Tests
runs-on: ubuntu-latest
needs: [provisioner, provider]
needs: [setup, provisioner]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,6 @@ jobs:
go-version: ${{ matrix.goversion }}
cache-dependency-path: sdk/go.sum

- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl

- name: Install Pulumi CLI
uses: pulumi/[email protected]

- name: Setup Node
uses: actions/setup-node@v4
with:
Expand Down
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20.16.0

0 comments on commit e6f976e

Please sign in to comment.