mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-29 02:52:13 +00:00
112 lines
4.5 KiB
YAML
112 lines
4.5 KiB
YAML
name: AutoRelease
|
|
|
|
env:
|
|
PYTHONUNBUFFERED: 1
|
|
DRY_RUN: true
|
|
|
|
concurrency:
|
|
group: release
|
|
on: # yamllint disable-line rule:truthy
|
|
# Workflow uses a test bucket for packages and dry run mode (no real releases)
|
|
schedule:
|
|
- cron: '0 9 * * *'
|
|
- cron: '0 15 * * *'
|
|
workflow_dispatch:
|
|
inputs:
|
|
dry-run:
|
|
description: 'Dry run'
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
|
|
jobs:
|
|
AutoRelease:
|
|
runs-on: [self-hosted, release-maker]
|
|
steps:
|
|
- name: DebugInfo
|
|
uses: hmarr/debug-action@f7318c783045ac39ed9bb497e22ce835fdafbfe6
|
|
- name: Set envs
|
|
run: |
|
|
cat >> "$GITHUB_ENV" << 'EOF'
|
|
ROBOT_CLICKHOUSE_SSH_KEY<<RCSK
|
|
${{secrets.ROBOT_CLICKHOUSE_SSH_KEY}}
|
|
RCSK
|
|
EOF
|
|
- name: Set DRY_RUN for schedule
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
run: echo "DRY_RUN=true" >> "$GITHUB_ENV"
|
|
- name: Set DRY_RUN for dispatch
|
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
run: echo "DRY_RUN=${{ github.event.inputs.dry-run }}" >> "$GITHUB_ENV"
|
|
- name: Check out repository code
|
|
uses: ClickHouse/checkout@v1
|
|
with:
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
fetch-depth: 0
|
|
- name: Auto Release Prepare
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE/tests/ci"
|
|
python3 auto_release.py --prepare
|
|
echo "::group::Auto Release Info"
|
|
python3 -m json.tool /tmp/autorelease_info.json
|
|
echo "::endgroup::"
|
|
{
|
|
echo 'AUTO_RELEASE_PARAMS<<EOF'
|
|
cat /tmp/autorelease_info.json
|
|
echo 'EOF'
|
|
} >> "$GITHUB_ENV"
|
|
- name: Post Release Branch statuses
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE/tests/ci"
|
|
python3 auto_release.py --post-status
|
|
- name: Release ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[0].release_branch }}
|
|
if: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[0] && fromJson(env.AUTO_RELEASE_PARAMS).releases[0].ready }}
|
|
uses: ./.github/actions/release
|
|
with:
|
|
ref: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[0].commit_sha }}
|
|
type: patch
|
|
dry-run: ${{ env.DRY_RUN }}
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
- name: Release ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[1].release_branch }}
|
|
if: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[0] && fromJson(env.AUTO_RELEASE_PARAMS).releases[1].ready }}
|
|
uses: ./.github/actions/release
|
|
with:
|
|
ref: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[1].commit_sha }}
|
|
type: patch
|
|
dry-run: ${{ env.DRY_RUN }}
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
- name: Release ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[2].release_branch }}
|
|
if: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[2] && fromJson(env.AUTO_RELEASE_PARAMS).releases[2].ready }}
|
|
uses: ./.github/actions/release
|
|
with:
|
|
ref: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[2].commit_sha }}
|
|
type: patch
|
|
dry-run: ${{ env.DRY_RUN }}
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
- name: Release ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[3].release_branch }}
|
|
if: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[3] && fromJson(env.AUTO_RELEASE_PARAMS).releases[3].ready }}
|
|
uses: ./.github/actions/release
|
|
with:
|
|
ref: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[3].commit_sha }}
|
|
type: patch
|
|
dry-run: ${{ env.DRY_RUN }}
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
- name: Release ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[4].release_branch }}
|
|
if: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[4] && fromJson(env.AUTO_RELEASE_PARAMS).releases[4].ready }}
|
|
uses: ./.github/actions/release
|
|
with:
|
|
ref: ${{ fromJson(env.AUTO_RELEASE_PARAMS).releases[4].commit_sha }}
|
|
type: patch
|
|
dry-run: ${{ env.DRY_RUN }}
|
|
token: ${{secrets.ROBOT_CLICKHOUSE_COMMIT_TOKEN}}
|
|
- name: Post Slack Message
|
|
if: ${{ !cancelled() }}
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE/tests/ci"
|
|
python3 auto_release.py --post-auto-release-complete --wf-status ${{ job.status }}
|
|
- name: Clean up
|
|
run: |
|
|
docker ps --quiet | xargs --no-run-if-empty docker kill ||:
|
|
docker ps --all --quiet | xargs --no-run-if-empty docker rm -f ||:
|
|
sudo rm -fr "$TEMP_PATH"
|