Skip to content

Commit

Permalink
add rudimentary CI pipeline (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
aschepis authored Apr 11, 2024
1 parent a8be2d3 commit 0acd49a
Show file tree
Hide file tree
Showing 1,210 changed files with 45,580 additions and 20,041 deletions.
191 changes: 191 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# This workflow will build and test the Chronosphere provider
name: pulumi-chronosphere

on:
push:
branches: main
pull_request:
# The specific activity types are listed here to include "labeled" and "unlabeled"
# (which are not included by default for the "pull_request" trigger).
# This is needed to allow skipping enforcement of the changelog in PRs with specific labels,
# as defined in the (optional) "skipLabels" property.
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
env:
DOTNETVERSION: |
6.0.x
3.1.301
GOVERSION: 1.21.x
GRADLEVERSION: "7.6"
JAVAVERSION: "11"
NODEVERSION: 20.x
PYTHONVERSION: "3.12.2"

jobs:
# Enforces the update of a changelog file on every pull request
changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dangoslen/changelog-enforcer@v3
with:
skipLabels: "skip-changelog,ignore-release"

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: v1.55.2
working-directory: provider
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
tag: v0.0.46
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: ^3
- name: Lint Provider
run: make lint_provider

test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21
cache: false
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
tag: v0.0.46
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: ^3
- name: Test Provider
run: make test_provider

build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21
cache: false
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
tag: v0.0.46
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: ^3
- if: matrix.language == 'nodejs'
name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- if: matrix.language == 'dotnet'
name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
# - if: matrix.language == 'python'
# name: Setup Python
# uses: actions/setup-python@v5
# with:
# python-version: ${{ env.PYTHONVERSION }}
- if: matrix.language == 'java'
name: Setup Java
uses: actions/setup-java@v4
with:
cache: gradle
distribution: temurin
java-version: ${{ env.JAVAVERSION }}
- if: matrix.language == 'java'
name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: ${{ env.GRADLEVERSION }}
- name: Build SDK
run: make provider build_${{ matrix.language }}
# TODO: Check worktree clean
strategy:
fail-fast: true
matrix:
language:
- nodejs
- dotnet
- java
# - go
# - python

# - name: Download provider + tfgen binaries
# uses: actions/download-artifact@v4
# with:
# name: ${{ env.PROVIDER }}-provider.tar.gz
# path: ${{ github.workspace }}/bin
# - name: Untar provider binaries
# run: >-
# tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
# github.workspace}}/bin

# find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print -exec chmod +x {} \;
# - name: Install plugins
# run: make install_plugins
# - name: Update path
# run: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH"
# - name: Set PACKAGE_VERSION to Env
# run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >>
# "$GITHUB_ENV"
# - name: Build SDK
# run: make build_${{ matrix.language }}
# - name: Check worktree clean
# run: ./ci-scripts/ci/check-worktree-is-clean
# - name: Compress SDK folder
# run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
# - name: Upload artifacts
# uses: actions/upload-artifact@v4
# with:
# name: ${{ matrix.language }}-sdk.tar.gz
# path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
# retention-days: 30
# - if: failure() && github.event_name == 'push'
# name: Notify Slack
# uses: 8398a7/action-slack@v3
# with:
# author_name: Failure in building ${{ matrix.language }} sdk
# fields: repo,commit,author,action
# status: ${{ job.status }}
# strategy:
# fail-fast: true
# matrix:
# language:
# - nodejs
# - python
# - dotnet
# - go
# - java
Loading

0 comments on commit 0acd49a

Please sign in to comment.