Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Publish Docker Images
on:
push:
branches:
- master
- publishdocker
Comment on lines +18 to +22
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR title/metadata suggests publishing on master push, but the trigger also includes the publishdocker branch. If this was only for initial testing, it should be removed to avoid publishing from a non-release branch; otherwise, please align the PR description/title with the actual triggers.

Copilot uses AI. Check for mistakes.
jobs:
publish:
name: Publish ${{ matrix.component }} image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
Comment on lines +17 to +30
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow publishes :latest on every push, but it has no concurrency guard. Multiple pushes close together can run in parallel and race on the latest tag (an older run could finish last and overwrite latest). Consider adding a concurrency group (similar to .github/workflows/go.yml) with cancel-in-progress: true to ensure only the newest run updates latest.

Copilot uses AI. Check for mistakes.
matrix:
include:
- component: operator
context: operator
image: ghcr.io/apache/skywalking-swck/operator
- component: adapter
context: adapter
image: ghcr.io/apache/skywalking-swck/metrics-adapter
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
- name: Login to ghcr.io
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push ${{ matrix.component }} image
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8
with:
context: ${{ matrix.context }}
platforms: linux/amd64,linux/arm64
push: true
Comment on lines +41 to +53
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow builds a multi-arch image (linux/amd64,linux/arm64) but doesn’t set up QEMU/binfmt on the runner. Without docker/setup-qemu-action (typically run before setup-buildx), the linux/arm64 build can fail on ubuntu-latest runners. Add the QEMU setup step or drop the non-native platform from platforms:.

Copilot uses AI. Check for mistakes.
tags: |
${{ matrix.image }}:${{ github.sha }}
${{ matrix.image }}:latest
Loading