Skip to content

Commit 4933170

Browse files
committed
Use github actions to create releases and krew plugin assets
1 parent c7c06e0 commit 4933170

File tree

3 files changed

+152
-6
lines changed

3 files changed

+152
-6
lines changed

.github/workflows/main.yaml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,35 @@
1-
name: docs and Helm chart
1+
name: Documentation and Helm chart
22

33
on:
44
push:
55
branches:
66
- master
77

88
jobs:
9-
build:
9+
10+
chart:
1011
runs-on: ubuntu-latest
1112
steps:
1213
- name: Checkout master
1314
uses: actions/checkout@v1
1415

15-
#- name: Run chart-releaser
16-
# uses: helm/[email protected]
17-
# env:
18-
# CR_TOKEN: "${{ secrets.PERSONAL_TOKEN }}"
16+
- name: Setup
17+
shell: bash
18+
run: |
19+
git config --global user.name "$GITHUB_ACTOR"
20+
git config --global user.email "[email protected]"
21+
22+
- name: Run chart-releaser
23+
uses: helm/[email protected]
24+
env:
25+
CR_TOKEN: "${{ secrets.PERSONAL_TOKEN }}"
26+
27+
docs:
28+
needs: chart
29+
runs-on: ubuntu-latest
30+
steps:
31+
- name: Checkout master
32+
uses: actions/checkout@v1
1933

2034
- name: Deploy docs
2135
uses: ./.github/actions/mkdocs

.github/workflows/release.yaml

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- controller*
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout master
13+
uses: actions/checkout@v1
14+
15+
- name: Set up Go 1.14
16+
uses: actions/setup-go@master
17+
with:
18+
go-version: 1.14
19+
20+
- name: Build krew plugin
21+
shell: bash
22+
run: |
23+
export PATH=${PATH}:`go env GOPATH`/bin
24+
make build-plugin
25+
26+
# - name: Build and publish images
27+
# shell: bash
28+
# run: |
29+
# cat <<EOF | > build/images/nginx/aws.tfvars
30+
# access_key = "${{ secrets.AWS_ACCESS_KEY }}"
31+
# secret_key = "${{ secrets.AWS_ACCESS_SECRET_KEY }}"
32+
# EOF
33+
#
34+
# cat <<EOF | > build/images/nginx/env.tfvars
35+
# docker_username="${{ secrets.DOCKER_USERNAME }}"
36+
# docker_password="${{ secrets.DOCKER_PASSWORD }}"
37+
# EOF
38+
#
39+
# ./build/build-ingress-controller.sh
40+
41+
- name: Create env variables
42+
shell: bash
43+
run: |
44+
# $(cat cmd/plugin/release/ingress-nginx.yaml)
45+
echo "::set-env name=RELEASE_VERSION::$(make show-version)"
46+
echo "::set-env name=RELEASE_CHANGELOG::##CHANGELOG##"
47+
48+
- name: Create release
49+
id: create_release
50+
uses: actions/create-release@v1
51+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
52+
env:
53+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54+
with:
55+
tag_name: controller-${{ env.RELEASE_VERSION }}
56+
release_name: "NGINX: ${{ env.RELEASE_VERSION }}"
57+
body: |
58+
**Image:** `quay.io/kubernetes-ingress-controller/nginx-ingress-controller:${{ env.RELEASE_VERSION }}`
59+
60+
${{ env.RELEASE_CHANGELOG }}
61+
62+
Complete changelog [here](https://github.com/kubernetes/ingress-nginx/blob/master/Changelog.md)
63+
64+
draft: false
65+
prerelease: false
66+
67+
- name: Upload krew plugin Darwin
68+
uses: actions/upload-release-asset@v1
69+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
70+
env:
71+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72+
with:
73+
upload_url: ${{ steps.create_release.outputs.upload_url }}
74+
asset_path: cmd/plugin/release/kubectl-ingress_nginx-darwin-amd64.tar.gz
75+
asset_name: kubectl-ingress_nginx-darwin-amd64.tar.gz
76+
asset_content_type: application/tar+gzip
77+
78+
- name: Upload krew plugin Linux
79+
uses: actions/upload-release-asset@v1
80+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
81+
env:
82+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
83+
with:
84+
upload_url: ${{ steps.create_release.outputs.upload_url }}
85+
asset_path: cmd/plugin/release/kubectl-ingress_nginx-linux-amd64.tar.gz
86+
asset_name: kubectl-ingress_nginx-linux-amd64.tar.gz
87+
asset_content_type: application/tar+gzip
88+
89+
- name: Upload krew plugin Windows
90+
uses: actions/upload-release-asset@v1
91+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
92+
env:
93+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
94+
with:
95+
upload_url: ${{ steps.create_release.outputs.upload_url }}
96+
asset_path: cmd/plugin/release/kubectl-ingress_nginx-windows-amd64.tar.gz
97+
asset_name: kubectl-ingress_nginx-windows-amd64.tar.gz
98+
asset_content_type: application/tar+gzip
99+
100+
- name: Upload krew plugin
101+
uses: actions/upload-release-asset@v1
102+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/controller')
103+
env:
104+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
105+
with:
106+
upload_url: ${{ steps.create_release.outputs.upload_url }}
107+
asset_path: cmd/plugin/release/ingress-nginx.yaml
108+
asset_name: ingress-nginx.yaml
109+
asset_content_type: text/x-yaml
110+
111+
- name: Create KREW_PLUGIN_BODY_PR env variable
112+
shell: bash
113+
run: |
114+
echo "::set-env name=KREW_PLUGIN_BODY_PR::$(cat cmd/plugin/release/ingress-nginx.yaml)"
115+
116+
- name: Open PR for new release of Krew Plugin
117+
uses: gha-utilities/[email protected]
118+
env:
119+
GITHUB_REPOSITORY: maintainer/repo-name
120+
with:
121+
verbose: true
122+
draft: false
123+
pull_request_token: ${{ secrets.GITHUB_TOKEN }}
124+
head: ingress-nginx:krew
125+
base: krew
126+
title: 'Update ingress-nginx krew plugin to ${{ env.RELEASE_VERSION }}'
127+
body: |
128+
${{ env.KREW_PLUGIN_BODY_PR }}

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,3 +288,7 @@ endif
288288
docker buildx create --name ingress-nginx --use || true
289289
docker buildx inspect --bootstrap
290290
endif
291+
292+
.PHONY: show-version
293+
show-version:
294+
echo -n $(TAG)

0 commit comments

Comments
 (0)