Automate releases using GHA (#517) #226
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
--- | |
name: CI | |
env: | |
VERSION_GO: '1.20.12' | |
VERSION_HELM: 'v3.13.3' | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
name: "Build & Test" | |
if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-go@v2 | |
with: | |
go-version: ${{ env.VERSION_GO }} | |
- uses: actions/cache@v2 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Install dependencies | |
run: make bootstrap | |
- name: Run unit tests | |
run: make test | |
- name: Verify installation | |
run: | | |
mkdir -p helmhome | |
make install HELM_HOME=helmhome | |
helmhome/plugins/helm-diff/bin/diff version | |
helm-install: | |
name: helm install | |
if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
needs: [build] | |
runs-on: ${{ matrix.os }} | |
container: ${{ matrix.container }} | |
continue-on-error: ${{ matrix.experimental }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
shell: [ default ] | |
experimental: [ false ] | |
include: | |
- os: windows-latest | |
shell: wsl | |
experimental: false | |
- os: windows-latest | |
shell: cygwin | |
experimental: false | |
- os: ubuntu-latest | |
container: alpine | |
shell: sh | |
experimental: false | |
steps: | |
- name: Disable autocrlf | |
if: "contains(matrix.os, 'windows-latest')" | |
run: |- | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- uses: actions/checkout@v2 | |
- name: Setup Helm | |
uses: azure/[email protected] | |
with: | |
version: ${{ env.VERSION_HELM }} | |
- name: Setup WSL | |
if: "contains(matrix.shell, 'wsl')" | |
uses: Vampire/setup-wsl@v1 | |
- name: Setup Cygwin | |
if: "contains(matrix.shell, 'cygwin')" | |
uses: egor-tensin/setup-cygwin@v3 | |
with: | |
platform: x64 | |
- name: helm plugin install | |
run: helm plugin install . | |
integration-tests: | |
name: Integration Tests | |
if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: engineerd/[email protected] | |
with: | |
version: "v0.11.1" | |
- uses: actions/checkout@v2 | |
- name: Setup Helm | |
uses: azure/[email protected] | |
with: | |
version: ${{ env.VERSION_HELM }} | |
- name: helm plugin install | |
run: helm plugin install . | |
- name: helm create helm-diff | |
run: helm create helm-diff | |
- name: helm diff upgrade --install helm-diff ./helm-diff | |
run: helm diff upgrade --install helm-diff ./helm-diff | |
- name: helm upgrade -i helm-diff ./helm-diff | |
run: helm upgrade -i helm-diff ./helm-diff | |
- name: helm diff upgrade -C 3 --set replicaCount=2 --install helm-diff ./helm-diff | |
run: helm diff upgrade -C 3 --set replicaCount=2 --install helm-diff ./helm-diff | |
shell-lint: | |
name: Lint install-binary.sh | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
continue-on-error: true | |
steps: | |
- uses: actions/[email protected] | |
- uses: luizm/[email protected] | |
with: | |
sh_checker_exclude: "scripts" | |
sh_checker_checkbashisms_enable: true |