Skip to content

Use the action meant for this step #105

Use the action meant for this step

Use the action meant for this step #105

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
goreleaser:
name: GoReleaser Check
runs-on: ubuntu-latest
steps:
- name: Chekcout
uses: actions/checkout@v4
- uses: goreleaser/goreleaser-action@v6
with:
args: check
version: '~> v2'
lint:
if: github.event_name == 'pull_request'
name: Lint
runs-on: ubuntu-latest
strategy:
matrix:
module:
- provider
- sdk
- tests
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: ${{ matrix.module }}/go.mod
cache-dependency-path: ${{ matrix.module }}/go.sum
- name: golangci-lint ${{ matrix.module }}
uses: golangci/golangci-lint-action@v6
with:
version: v1.59
working-directory: ${{ matrix.module }}
buf:
if: github.event_name == 'pull_request'
name: Buf
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
with:
version: 1.35.1
github_token: ${{ github.token }}
- name: Get changed files
id: diff
uses: tj-actions/changed-files@v44
with:
files: |
**/*.proto
- name: Lint
if: ${{ steps.diff.outputs.any_changed == 'true' }}
uses: bufbuild/buf-lint-action@v1
with:
input: ${{ steps.diff.outputs.all_changed_files }}
- name: Buf breaking
if: false # Lots of breaking changes in v1alpha1
uses: bufbuild/buf-breaking-action@v1
with:
input: ${{ steps.diff.outputs.all_changed_files }}
against: "https://github.com/${GITHUB_REPOSITORY}.git#branch=main,ref=HEAD~1"
provisioner:
name: Provisioner
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: provider/go.mod
cache-dependency-path: provider/go.sum
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Touch targets
run: make --touch gen
- name: Make
run: make provisioner
- name: Upload binary
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: provisioner
path: bin/provisioner
provider:
name: Provider
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: provider/go.mod
cache-dependency-path: provider/go.sum
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Install Pulumi
uses: pulumi/actions@v5
with:
pulumi-version-file: .versions/pulumi
- name: Touch targets
run: make --touch gen
- name: Make
run: make provider
test:
if: github.event_name == 'pull_request'
name: Tests
runs-on: ubuntu-latest
needs: [provisioner, provider]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: tests/go.mod
cache-dependency-path: tests/go.sum
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Install Pulumi
uses: pulumi/actions@v5
with:
pulumi-version-file: .versions/pulumi
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download provisioner
uses: actions/download-artifact@v4
with:
name: provisioner
path: bin
- name: Build and push
uses: docker/build-push-action@v6
with:
push: false
cache-from: type=gha
cache-to: type=gha
context: .
file: provider/cmd/provisioner/Dockerfile
- name: Test
run: make test_provider