diff --git a/.github/workflows/opensearch.yml b/.github/workflows/opensearch.yml new file mode 100644 index 0000000..55c0119 --- /dev/null +++ b/.github/workflows/opensearch.yml @@ -0,0 +1,67 @@ +name: 'Build OpenSearch docker image' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + schedule: + - cron: 0 7 * * THU + push: + branches: + - main + paths: + - opensearch/** + pull_request: + branches: + - main + paths: + - opensearch/** + workflow_dispatch: + inputs: {} + +jobs: + build-docker-image: + name: 'Build opensearch-${{ matrix.image.version }} docker image' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + max-parallel: 10 + matrix: + image: + - version: 2.16 + build-args: | + OPENSERACH_VERSION=2.16.0 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GHCR + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push (OpenSearch) + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: ./opensearch + target: opensearch + file: ./opensearch/Dockerfile + build-args: ${{ matrix.image.build-args }} + push: ${{ github.event_name != 'pull_request' }} + tags: ghcr.io/netlogix/docker/opensearch:${{ matrix.image.version }} + platforms: linux/amd64,linux/arm64 + cache-from: type=gha, scope=${{ github.workflow }}-opensearch + cache-to: type=gha, scope=${{ github.workflow }}-opensearch, mode=max diff --git a/opensearch/Dockerfile b/opensearch/Dockerfile new file mode 100644 index 0000000..f87ad1a --- /dev/null +++ b/opensearch/Dockerfile @@ -0,0 +1,2 @@ +ARG OPENSERACH_VERSION=2.16 +FROM opensearchproject/opensearch:${OPENSERACH_VERSION} AS opensearch