Use github actions to create releases and krew plugin assets
This commit is contained in:
parent
c7c06e0e6f
commit
4933170ae8
3 changed files with 152 additions and 6 deletions
26
.github/workflows/main.yaml
vendored
26
.github/workflows/main.yaml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: docs and Helm chart
|
name: Documentation and Helm chart
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
@ -6,16 +6,30 @@ on:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
|
||||||
|
chart:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout master
|
- name: Checkout master
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
#- name: Run chart-releaser
|
- name: Setup
|
||||||
# uses: helm/chart-releaser-action@v1.0.0-alpha.2
|
shell: bash
|
||||||
# env:
|
run: |
|
||||||
# CR_TOKEN: "${{ secrets.PERSONAL_TOKEN }}"
|
git config --global user.name "$GITHUB_ACTOR"
|
||||||
|
git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
|
||||||
|
- name: Run chart-releaser
|
||||||
|
uses: helm/chart-releaser-action@v1.0.0-rc.2
|
||||||
|
env:
|
||||||
|
CR_TOKEN: "${{ secrets.PERSONAL_TOKEN }}"
|
||||||
|
|
||||||
|
docs:
|
||||||
|
needs: chart
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout master
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: Deploy docs
|
- name: Deploy docs
|
||||||
uses: ./.github/actions/mkdocs
|
uses: ./.github/actions/mkdocs
|
||||||
|
|
128
.github/workflows/release.yaml
vendored
Normal file
128
.github/workflows/release.yaml
vendored
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- controller*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout master
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Set up Go 1.14
|
||||||
|
uses: actions/setup-go@master
|
||||||
|
with:
|
||||||
|
go-version: 1.14
|
||||||
|
|
||||||
|
- name: Build krew plugin
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
export PATH=${PATH}:`go env GOPATH`/bin
|
||||||
|
make build-plugin
|
||||||
|
|
||||||
|
# - name: Build and publish images
|
||||||
|
# shell: bash
|
||||||
|
# run: |
|
||||||
|
# cat <<EOF | > build/images/nginx/aws.tfvars
|
||||||
|
# access_key = "${{ secrets.AWS_ACCESS_KEY }}"
|
||||||
|
# secret_key = "${{ secrets.AWS_ACCESS_SECRET_KEY }}"
|
||||||
|
# EOF
|
||||||
|
#
|
||||||
|
# cat <<EOF | > build/images/nginx/env.tfvars
|
||||||
|
# docker_username="${{ secrets.DOCKER_USERNAME }}"
|
||||||
|
# docker_password="${{ secrets.DOCKER_PASSWORD }}"
|
||||||
|
# EOF
|
||||||
|
#
|
||||||
|
# ./build/build-ingress-controller.sh
|
||||||
|
|
||||||
|
- name: Create env variables
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# $(cat cmd/plugin/release/ingress-nginx.yaml)
|
||||||
|
echo "::set-env name=RELEASE_VERSION::$(make show-version)"
|
||||||
|
echo "::set-env name=RELEASE_CHANGELOG::##CHANGELOG##"
|
||||||
|
|
||||||
|
- name: Create release
|
||||||
|
id: create_release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: controller-${{ env.RELEASE_VERSION }}
|
||||||
|
release_name: "NGINX: ${{ env.RELEASE_VERSION }}"
|
||||||
|
body: |
|
||||||
|
**Image:** `quay.io/kubernetes-ingress-controller/nginx-ingress-controller:${{ env.RELEASE_VERSION }}`
|
||||||
|
|
||||||
|
${{ env.RELEASE_CHANGELOG }}
|
||||||
|
|
||||||
|
Complete changelog [here](https://github.com/kubernetes/ingress-nginx/blob/master/Changelog.md)
|
||||||
|
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
|
|
||||||
|
- name: Upload krew plugin Darwin
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: cmd/plugin/release/kubectl-ingress_nginx-darwin-amd64.tar.gz
|
||||||
|
asset_name: kubectl-ingress_nginx-darwin-amd64.tar.gz
|
||||||
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
|
- name: Upload krew plugin Linux
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: cmd/plugin/release/kubectl-ingress_nginx-linux-amd64.tar.gz
|
||||||
|
asset_name: kubectl-ingress_nginx-linux-amd64.tar.gz
|
||||||
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
|
- name: Upload krew plugin Windows
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: cmd/plugin/release/kubectl-ingress_nginx-windows-amd64.tar.gz
|
||||||
|
asset_name: kubectl-ingress_nginx-windows-amd64.tar.gz
|
||||||
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
|
- name: Upload krew plugin
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: cmd/plugin/release/ingress-nginx.yaml
|
||||||
|
asset_name: ingress-nginx.yaml
|
||||||
|
asset_content_type: text/x-yaml
|
||||||
|
|
||||||
|
- name: Create KREW_PLUGIN_BODY_PR env variable
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "::set-env name=KREW_PLUGIN_BODY_PR::$(cat cmd/plugin/release/ingress-nginx.yaml)"
|
||||||
|
|
||||||
|
- name: Open PR for new release of Krew Plugin
|
||||||
|
uses: gha-utilities/init-pull-request@v0.1.2
|
||||||
|
env:
|
||||||
|
GITHUB_REPOSITORY: maintainer/repo-name
|
||||||
|
with:
|
||||||
|
verbose: true
|
||||||
|
draft: false
|
||||||
|
pull_request_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
head: ingress-nginx:krew
|
||||||
|
base: krew
|
||||||
|
title: 'Update ingress-nginx krew plugin to ${{ env.RELEASE_VERSION }}'
|
||||||
|
body: |
|
||||||
|
${{ env.KREW_PLUGIN_BODY_PR }}
|
4
Makefile
4
Makefile
|
@ -288,3 +288,7 @@ endif
|
||||||
docker buildx create --name ingress-nginx --use || true
|
docker buildx create --name ingress-nginx --use || true
|
||||||
docker buildx inspect --bootstrap
|
docker buildx inspect --bootstrap
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.PHONY: show-version
|
||||||
|
show-version:
|
||||||
|
echo -n $(TAG)
|
||||||
|
|
Loading…
Reference in a new issue