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:
|
||||
push:
|
||||
|
@ -6,16 +6,30 @@ on:
|
|||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
chart:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@v1
|
||||
|
||||
#- name: Run chart-releaser
|
||||
# uses: helm/chart-releaser-action@v1.0.0-alpha.2
|
||||
# env:
|
||||
# CR_TOKEN: "${{ secrets.PERSONAL_TOKEN }}"
|
||||
- name: Setup
|
||||
shell: bash
|
||||
run: |
|
||||
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
|
||||
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 inspect --bootstrap
|
||||
endif
|
||||
|
||||
.PHONY: show-version
|
||||
show-version:
|
||||
echo -n $(TAG)
|
||||
|
|
Loading…
Reference in a new issue