Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
on:
push:
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10

name: Upload Release Asset

jobs:
build:
name: Upload Release Asset
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v2
with:
ref: master
- name: Checkout code
uses: actions/checkout@v2
- name: Build project
run: |
make ci
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./examples.tar.gz
asset_name: examples.tar.gz
asset_content_type: application/tar+gzip
- name: Commit updated krew yaml
id: git_commit
run: |
git config --global user.email "[email protected]"
git config --global user.name "Github Action"
git stash -- plugins/examples.yaml
git checkout master
git stash pop
git add plugins/examples.yaml
git commit -m "update version references to: ${{ github.ref }}"
git push origin master
11 changes: 9 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,21 @@ tgz:
@tar -uf examples.tar kubectl-examples
gzip examples.tar

ver = $(shell git describe --tags)
sha = $(shell shasum -a 256 < examples.tar.gz|cut -d" " -f1)

update:
fix-sha:
@sed -i 's/sha256: .*$$/sha256: $(sha)/' plugins/examples.yaml

install: clean tgz update
fix-version:
@sed -i 's/v[0-9]\.[0-9]\.[0-9]/$(ver)/' plugins/examples.yaml

install: clean tgz fix-sha
kubectl krew install --manifest=plugins/examples.yaml --archive=examples.tar.gz

ci: tgz fix-sha fix-version
@echo github action ...

clean:
@rm -f examples.tar.gz
@kubectl krew uninstall examples || :
10 changes: 10 additions & 0 deletions plugins/examples.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@ spec:
A reference repository of YAML with canonical
and as-simple-as-possible demonstrations of
kubernetes functionality and features.

Usage:
interactively selecting resource type:
kubectl examples

interactively selecting yaml:
kubectl examples Service

create a sample ingress while modifying it:
kubectl examples Ingress fanout | kubectl create -f - --edit
platforms:
- selector:
matchExpressions:
Expand Down