release #1198
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: release | |
on: | |
workflow_dispatch: | |
inputs: | |
commit: | |
description: 'Commit or Tag' | |
required: false | |
default: '' | |
repository_dispatch: | |
types: [release] | |
schedule: | |
- cron: '0 18 */3 * *' | |
push: | |
tags: | |
- 'v*.*.*' | |
env: | |
VERSION: ${{ github.sha }} | |
BUILDER: ${{ secrets.BUILDER }} | |
KUBECONFIG: ${{ secrets.KUBECONFIG }} | |
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} | |
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} | |
SECRET_ID: ${{ secrets.SECRET_ID }} | |
SECRET_KEY: ${{ secrets.SECRET_KEY }} | |
REGION: ${{ secrets.REGION }} | |
CREATE_INSTANCES_PARAM: ${{ secrets.CREATE_INSTANCES_PARAM }} | |
PASSWORD: ${{ secrets.PASSWORD }} | |
NEED_DELETE: ${{ secrets.NEED_DELETE }} | |
DOCKER_HUB_ACTION_AUTH: ${{ secrets.DOCKER_HUB_ACTION_AUTH }} | |
INSTANCE_TYPES: ${{ secrets.INSTANCE_TYPES }} | |
DOCKER_PULL_CONFIG: ${{ secrets.DOCKER_PULL_CONFIG }} | |
jobs: | |
image: | |
name: build tke image | |
runs-on: self-hosted | |
steps: | |
- name: Set VERSION | |
run: | | |
if ${{github.event_name == 'push'}}; then | |
echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
elif ${{ github.event.inputs.commit != '' }}; then | |
echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ env.VERSION }} | |
- uses: azure/docker-login@v1 | |
with: | |
username: ${{ secrets.REGISTRY_USERNAME }} | |
password: ${{ secrets.REGISTRY_PASSWORD }} | |
- name: notify start building release | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Start build release.</font>\n | |
>version: <font color=\"comment\">$VERSION</font>" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
- name: build release | |
run: make release.build && make release | |
- name: notify build release success | |
if: success() | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Build release success.</font>\n | |
>version: <font color=\"comment\">$VERSION</font> | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
- name: notify build release failure | |
if: failure() | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"warning\">${{ github.repository }}: Build release failure.</font>\n | |
>version: <font color=\"comment\">$VERSION</font> | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
# installer: | |
# name: installer test | |
# runs-on: self-hosted | |
# needs: image | |
# if: success() | |
# steps: | |
# - name: Set VERSION | |
# run: | | |
# if ${{github.event_name == 'push'}}; then | |
# echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
# elif ${{ github.event.inputs.commit != '' }}; then | |
# echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
# fi | |
# - uses: actions/checkout@v2 | |
# with: | |
# ref: ${{ env.VERSION }} | |
# - name: Test installer | |
# run: | | |
# ( | |
# cat <<EOF | |
# { | |
# "msgtype": "markdown", | |
# "markdown": { | |
# "content": "<font color=\"info\">${{ github.repository }}: Start test installer.</font>\n | |
# >version: <font color=\"comment\">$VERSION</font> | |
# " | |
# } | |
# } | |
# EOF | |
# ) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
# -H 'Content-Type: application/json' \ | |
# -d @- | |
# ginkgo -nodes=2 -v test/e2e_installer/installer | |
cluster: | |
name: cluster test | |
runs-on: self-hosted | |
needs: image | |
if: success() | |
steps: | |
- name: Set VERSION | |
run: | | |
if ${{github.event_name == 'push'}}; then | |
echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
elif ${{ github.event.inputs.commit != '' }}; then | |
echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ env.VERSION }} | |
- name: Test cluster | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Start test cluster.</font>\n | |
>version: <font color=\"comment\">$VERSION</font> | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
ginkgo -nodes=1 -v test/e2e_installer/cluster | |
node: | |
name: node test | |
runs-on: self-hosted | |
needs: image | |
if: success() | |
steps: | |
- name: Set VERSION | |
run: | | |
if ${{github.event_name == 'push'}}; then | |
echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
elif ${{ github.event.inputs.commit != '' }}; then | |
echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ env.VERSION }} | |
- name: Test node | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Start test node.</font>\n | |
>version: <font color=\"comment\">$VERSION</font> | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
ginkgo -nodes=2 -v test/e2e_installer/node | |
report-failure: | |
name: report failure | |
runs-on: self-hosted | |
needs: [cluster, node] | |
if: failure() | |
steps: | |
- name: Set VERSION | |
run: | | |
if ${{github.event_name == 'push'}}; then | |
echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
elif ${{ github.event.inputs.commit != '' }}; then | |
echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
fi | |
- name: notify test release failure | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Test release finished.</font>\n | |
>version: <font color=\"comment\">$VERSION</font>\n | |
>status: <font color=\"warning\">failure</font>\n | |
>committer: <font color=\"comment\">${{ github.actor }}</font>\n | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- | |
report-success: | |
name: report success | |
runs-on: self-hosted | |
needs: [cluster, node] | |
if: success() | |
steps: | |
- name: Set VERSION | |
run: | | |
if ${{github.event_name == 'push'}}; then | |
echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
elif ${{ github.event.inputs.commit != '' }}; then | |
echo "VERSION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV | |
fi | |
- name: notify test release success | |
run: | | |
( | |
cat <<EOF | |
{ | |
"msgtype": "markdown", | |
"markdown": { | |
"content": "<font color=\"info\">${{ github.repository }}: Test release finished.</font>\n | |
>version: <font color=\"comment\">$VERSION</font>\n | |
>status: <font color=\"info\">success</font>\n | |
>committer: <font color=\"comment\">${{ github.actor }}</font>\n | |
" | |
} | |
} | |
EOF | |
) | curl '${{ secrets.WECHATWORK_WEBHOOK }}' \ | |
-H 'Content-Type: application/json' \ | |
-d @- |