Skip to content

Commit

Permalink
refactor: add reusable workflows to build, test and release oceanbase…
Browse files Browse the repository at this point in the history
…-ce (#43)
  • Loading branch information
whhe authored Aug 29, 2024
1 parent 1e8e0d3 commit 8e931d7
Show file tree
Hide file tree
Showing 10 changed files with 308 additions and 348 deletions.
78 changes: 0 additions & 78 deletions .github/workflows/build-oceanbase-ce.yml

This file was deleted.

94 changes: 5 additions & 89 deletions .github/workflows/release-lts-oceanbase-ce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,93 +6,9 @@ on:
- "lts-oceanbase-ce-[0-9]+.[0-9]+.[0-9]+.[0-9]+-[0-9]+"
- "lts-oceanbase-[0-9]+.[0-9]+.[0-9]+.[0-9]+-[0-9]+"

env:
tagName: ${{ github.ref_name }}

jobs:
release-lts-oceanbase-ce:
runs-on: ubuntu-latest
steps:
- name: Free disk space on Ubuntu runner
uses: kfir4444/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true

- name: Checkout repository
uses: actions/checkout@v4

- name: Set Version variables
id: set_version_vars
run: echo "version=$(echo $tagName | grep -P '(\d*\.\d*\.\d*\.\d*-\d{18})' --only-matching)" >> $GITHUB_OUTPUT

- name: Set LTS tag variables
id: set_lts_tag_vars
run: echo "lts_tag=$(echo $tagName | grep -P '(\d*\.\d*\.\d*)' --only-matching)" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Log in to Quay io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: ${{ secrets.QUAY_IO_PASSWORD }}

- name: Log in to Ghcr io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build pre image
uses: docker/build-push-action@v6
with:
context: ./oceanbase-ce
platforms: linux/amd64
file: ./oceanbase-ce/Dockerfile.pre
push: false
load: true
tags: oceanbase-ce-pre
build-args: |
VERSION=${{ steps.set_version_vars.outputs.version }}
- name: Copy storage files
run: |
mkdir -p ./oceanbase-ce/share
docker run -v ./oceanbase-ce/share:/root/share oceanbase-ce-pre
- name: Build and push observer w/o cache
uses: docker/build-push-action@v6
with:
context: ./oceanbase-ce
platforms: linux/amd64,linux/arm64
file: ./oceanbase-ce/Dockerfile
push: true
tags: |
${{ vars.DOCKER_PUSH_BASE }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
ghcr.io/${{ github.repository_owner }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
${{ vars.DOCKER_PUSH_BASE }}/oceanbase-ce:${{ steps.set_lts_tag_vars.outputs.lts_tag }}-lts
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/oceanbase-ce:${{ steps.set_lts_tag_vars.outputs.lts_tag }}-lts
ghcr.io/${{ github.repository_owner }}/oceanbase-ce:${{ steps.set_lts_tag_vars.outputs.lts_tag }}-lts
${{ vars.DOCKER_PUSH_BASE }}/oceanbase-ce:latest
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/oceanbase-ce:latest
ghcr.io/${{ github.repository_owner }}/oceanbase-ce:latest
build-args: |
VERSION=${{ steps.set_version_vars.outputs.version }}
release:
uses: ./.github/workflows/reusable-test-and-release-oceanbase-ce.yml
with:
tag_name: ${{ github.ref_name }}
lts: true
84 changes: 5 additions & 79 deletions .github/workflows/release-oceanbase-ce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,83 +6,9 @@ on:
- "oceanbase-ce-[0-9]+.[0-9]+.[0-9]+.[0-9]+-[0-9]+"
- "oceanbase-[0-9]+.[0-9]+.[0-9]+.[0-9]+-[0-9]+"

env:
tagName: ${{ github.ref_name }}

jobs:
release-oceanbase-ce:
runs-on: ubuntu-latest
steps:
- name: Free disk space on Ubuntu runner
uses: kfir4444/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true

- name: Checkout repository
uses: actions/checkout@v4

- name: Set Version variables
id: set_version_vars
run: echo "version=$(echo $tagName | grep -P '(\d*\.\d*\.\d*\.\d*-\d{18})' --only-matching)" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Log in to Quay io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: ${{ secrets.QUAY_IO_PASSWORD }}

- name: Log in to Ghcr io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build pre image
uses: docker/build-push-action@v6
with:
context: ./oceanbase-ce
platforms: linux/amd64
file: ./oceanbase-ce/Dockerfile.pre
push: false
load: true
tags: oceanbase-ce-pre
build-args: |
VERSION=${{ steps.set_version_vars.outputs.version }}
- name: Copy storage files
run: |
mkdir -p ./oceanbase-ce/share
docker run -v ./oceanbase-ce/share:/root/share oceanbase-ce-pre
- name: Build and push observer w/o cache
uses: docker/build-push-action@v6
with:
context: ./oceanbase-ce
platforms: linux/amd64,linux/arm64
file: ./oceanbase-ce/Dockerfile
push: true
tags: |
${{ vars.DOCKER_PUSH_BASE }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
ghcr.io/${{ github.repository_owner }}/oceanbase-ce:${{ steps.set_version_vars.outputs.version }}
build-args: |
VERSION=${{ steps.set_version_vars.outputs.version }}
release:
uses: ./.github/workflows/reusable-test-and-release-oceanbase-ce.yml
with:
tag_name: ${{ github.ref_name }}
lts: false
Loading

0 comments on commit 8e931d7

Please sign in to comment.