Skip to content

Build HBase

Build HBase #124

Workflow file for this run

---
name: Build HBase
env:
PRODUCT_NAME: hbase
on:
workflow_dispatch:
schedule:
- cron: '0 1 1/2 * *' # https://crontab.guru/#0_1_1/2_*_*
push:
branches:
- main
paths:
# To check dependencies, run this ( you will need to consider transitive dependencies)
# bake --product PRODUCT -d | grep -v 'docker buildx bake' | jq '.target | keys[]'
- hbase/**
- vector/**
- hadoop/**
- stackable-base/**
- java-base/**
- java-devel/**
- .github/actions/**
- .github/workflows/dev_hbase.yaml
jobs:
generate_matrix:
name: Generate Version List
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- id: shard
uses: stackabletech/actions/shard@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
product-name: ${{ env.PRODUCT_NAME }}
outputs:
versions: ${{ steps.shard.outputs.versions }}
build:
name: Build/Publish ${{ matrix.versions }}-${{ matrix.runner.arch }} Image
needs: [generate_matrix]
permissions:
id-token: write
runs-on: ${{ matrix.runner.name }}
strategy:
matrix:
runner:
- {name: "ubuntu-latest", arch: "amd64"}
- {name: "ubicloud-standard-8-arm", arch: "arm64"}
versions: ${{ fromJson(needs.generate_matrix.outputs.versions) }}
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Build Product Image
id: build
uses: stackabletech/actions/build-product-image@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
product-name: ${{ env.PRODUCT_NAME }}
product-version: ${{ matrix.versions }}
build-cache-password: ${{ secrets.BUILD_CACHE_NEXUS_PASSWORD }}
- name: Publish Container Image on docker.stackable.tech
uses: stackabletech/actions/publish-image@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
image-registry-uri: docker.stackable.tech
image-registry-username: github
image-registry-password: ${{ secrets.NEXUS_PASSWORD }}
image-repository: stackable/${{ env.PRODUCT_NAME }}
image-manifest-tag: ${{ steps.build.outputs.image-manifest-tag }}
source-image-uri: localhost/${{ env.PRODUCT_NAME }}:${{ steps.build.outputs.image-manifest-tag }}
- name: Publish Container Image on oci.stackable.tech
uses: stackabletech/actions/publish-image@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
image-registry-uri: oci.stackable.tech
image-registry-username: robot$sdp+github-action-build
image-registry-password: ${{ secrets.HARBOR_ROBOT_SDP_GITHUB_ACTION_BUILD_SECRET }}
image-repository: sdp/${{ env.PRODUCT_NAME }}
image-manifest-tag: ${{ steps.build.outputs.image-manifest-tag }}
source-image-uri: localhost/${{ env.PRODUCT_NAME }}:${{ steps.build.outputs.image-manifest-tag }}
publish_manifests:
name: Build/Publish ${{ matrix.versions }} Manifests
needs: [generate_matrix, build]
permissions:
id-token: write
runs-on: ubuntu-latest
strategy:
matrix:
versions: ${{ fromJson(needs.generate_matrix.outputs.versions) }}
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Publish and Sign Image Index Manifest to docker.stackable.tech
uses: stackabletech/actions/publish-index-manifest@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
image-registry-uri: docker.stackable.tech
image-registry-username: github
image-registry-password: ${{ secrets.NEXUS_PASSWORD }}
image-repository: stackable/${{ env.PRODUCT_NAME }}
image-index-manifest-tag: ${{ matrix.versions }}-stackable0.0.0-dev
- name: Publish and Sign Image Index Manifest to oci.stackable.tech
uses: stackabletech/actions/publish-index-manifest@e8781161bc1eb037198098334cec6061fe24b6c3 # 0.0.2
with:
image-registry-uri: oci.stackable.tech
image-registry-username: robot$sdp+github-action-build
image-registry-password: ${{ secrets.HARBOR_ROBOT_SDP_GITHUB_ACTION_BUILD_SECRET }}
image-repository: sdp/${{ env.PRODUCT_NAME }}
image-index-manifest-tag: ${{ matrix.versions }}-stackable0.0.0-dev