Skip to content
Merged
Show file tree
Hide file tree
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
108 changes: 73 additions & 35 deletions .github/workflows/container-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
workflow_dispatch: {}

env:
CONTAINER_CMD: docker
CONTAINER_CMD: podman
Copy link
Collaborator

Choose a reason for hiding this comment

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

I agree here, and we should probably align to podman in all of samba-in-kubernetes sub-projects. However, it would be nice to add to the checks stage something like run: command -v ${{ env.CONTAINER_CMD }}

jobs:
checks:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -45,28 +45,28 @@ jobs:
matrix:
package_source: [default, nightly]
os: [centos, fedora, opensuse]
arch: [amd64, arm64]
arch:
- {name: amd64, host: ubuntu-24.04}
- {name: arm64, host: ubuntu-24.04-arm}
exclude:
# there are no nightly packages for opensuse
- package_source: nightly
os: opensuse
- os: centos
arch: arm64
include:
- package_source: devbuilds
os: centos
arch: amd64
arch: {name: amd64, host: ubuntu-24.04}
- package_source: ceph20
os: centos
arch: amd64
runs-on: ubuntu-latest
arch: {name: amd64, host: ubuntu-24.04}
runs-on: ${{ matrix.arch.host }}
env:
BUILDAH_FORMAT: oci
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch }}
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch.name }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- name: Build the server image
run: make KIND=server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os}} BUILD_ARCH=${{ matrix.arch}} build-image
run: make KIND=server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch.name }} build-image
- name: Save image
run: >
${{ env.CONTAINER_CMD }} save
Expand All @@ -84,24 +84,24 @@ jobs:
matrix:
package_source: [default, nightly]
os: [centos, fedora, opensuse]
arch: [amd64, arm64]
arch:
- {name: amd64, host: ubuntu-24.04}
- {name: arm64, host: ubuntu-24.04-arm}
exclude:
# there are no nightly packages for opensuse
- package_source: nightly
os: opensuse
# the distro packages for centos do not include an ad-dc
- package_source: default
os: centos
- os: centos
arch: arm64
runs-on: ubuntu-latest
runs-on: ${{ matrix.arch.host }}
env:
BUILDAH_FORMAT: oci
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch }}
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch.name }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- name: Build the ad server image
run: make KIND=ad-server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch }} build-image
run: make KIND=ad-server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch.name }} build-image
- name: Save image
run: >
${{ env.CONTAINER_CMD }} save
Expand All @@ -118,18 +118,17 @@ jobs:
strategy:
matrix:
os: [centos, fedora, opensuse]
arch: [amd64, arm64]
exclude:
- os: centos
arch: arm64
runs-on: ubuntu-latest
arch:
- {name: amd64, host: ubuntu-24.04}
- {name: arm64, host: ubuntu-24.04-arm}
runs-on: ${{ matrix.arch.host }}
env:
BUILDAH_FORMAT: oci
IMG_TAG: default-${{ matrix.os }}-${{ matrix.arch }}
IMG_TAG: default-${{ matrix.os }}-${{ matrix.arch.name}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- name: build the client image
run: make KIND=client OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch }} build-image
run: make KIND=client OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch.name }} build-image
# The client image is used as a base for the samba-toolbox build process.
- name: Save image
run: >
Expand Down Expand Up @@ -308,23 +307,54 @@ jobs:
--container-engine=${CONTAINER_CMD}
--repo-base=${REPO_BASE}
--no-distro-qualified
-i samba-server:ceph20-centos-amd64
-i samba-server:default-centos-amd64
-i samba-server:default-centos-arm64
-i samba-server:default-fedora-amd64
-i samba-server:default-fedora-arm64
-i samba-server:default-opensuse-arm64
-i samba-server:devbuilds-centos-amd64
-i samba-server:nightly-centos-amd64
-i samba-server:nightly-centos-arm64
-i samba-server:nightly-fedora-amd64
-i samba-server:nightly-fedora-arm64
-i samba-server:nightly-centos-amd64
-i samba-server:devbuilds-centos-amd64
-i samba-server:ceph20-centos-amd64
-i samba-ad-server:default-fedora-amd64
-i samba-ad-server:default-fedora-arm64
-i samba-ad-server:default-opensuse-arm64
-i samba-ad-server:nightly-centos-amd64
-i samba-ad-server:nightly-centos-arm64
-i samba-ad-server:nightly-fedora-amd64
-i samba-ad-server:nightly-fedora-arm64
-i samba-client:default-centos-amd64
-i samba-client:default-centos-arm64
-i samba-client:default-fedora-amd64
-i samba-client:default-fedora-arm64
-i samba-client:default-opensuse-arm64
-i samba-toolbox:default-fedora-amd64
- name: Create manifests/indexes
run: >
./hack/build-image
--index
--container-engine=${CONTAINER_CMD}
-i ${REPO_BASE}/samba-server:ceph20-centos-amd64
-i ${REPO_BASE}/samba-server:default-centos-amd64
-i ${REPO_BASE}/samba-server:default-centos-arm64
-i ${REPO_BASE}/samba-server:default-fedora-amd64
-i ${REPO_BASE}/samba-server:default-fedora-arm64
-i ${REPO_BASE}/samba-server:devbuilds-centos-amd64
-i ${REPO_BASE}/samba-server:nightly-centos-amd64
-i ${REPO_BASE}/samba-server:nightly-centos-arm64
-i ${REPO_BASE}/samba-server:nightly-fedora-amd64
-i ${REPO_BASE}/samba-server:nightly-fedora-arm64
-i ${REPO_BASE}/samba-ad-server:default-fedora-amd64
-i ${REPO_BASE}/samba-ad-server:default-fedora-arm64
-i ${REPO_BASE}/samba-ad-server:nightly-centos-amd64
-i ${REPO_BASE}/samba-ad-server:nightly-centos-arm64
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-amd64
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-arm64
-i ${REPO_BASE}/samba-client:default-centos-amd64
-i ${REPO_BASE}/samba-client:default-centos-arm64
-i ${REPO_BASE}/samba-client:default-fedora-amd64
-i ${REPO_BASE}/samba-client:default-fedora-arm64
-i ${REPO_BASE}/samba-toolbox:default-fedora-amd64
# Please keep the above list of arguments SORTED.
- name: List images prior to pushing (debug)
run: |
${{ env.CONTAINER_CMD }} images
Expand All @@ -335,19 +365,27 @@ jobs:
--container-engine=${CONTAINER_CMD}
--verbose
--push-state=exists
--push-selected-tags=mixed
--push-kinds=mixed,index-multiarch
--push-format=oci
-i ${REPO_BASE}/samba-server:ceph20-centos-amd64
-i ${REPO_BASE}/samba-server:default-centos-amd64
-i ${REPO_BASE}/samba-server:default-centos-arm64
-i ${REPO_BASE}/samba-server:default-fedora-amd64
-i ${REPO_BASE}/samba-server:default-fedora-arm64
-i ${REPO_BASE}/samba-server:default-opensuse-arm64
-i ${REPO_BASE}/samba-server:nightly-fedora-amd64
-i ${REPO_BASE}/samba-server:nightly-centos-amd64
-i ${REPO_BASE}/samba-server:devbuilds-centos-amd64
-i ${REPO_BASE}/samba-server:ceph20-centos-amd64
-i ${REPO_BASE}/samba-server:nightly-centos-amd64
-i ${REPO_BASE}/samba-server:nightly-centos-arm64
-i ${REPO_BASE}/samba-server:nightly-fedora-amd64
-i ${REPO_BASE}/samba-server:nightly-fedora-arm64
-i ${REPO_BASE}/samba-ad-server:default-fedora-amd64
-i ${REPO_BASE}/samba-ad-server:default-fedora-arm64
-i ${REPO_BASE}/samba-ad-server:default-opensuse-arm64
-i ${REPO_BASE}/samba-ad-server:nightly-centos-amd64
-i ${REPO_BASE}/samba-ad-server:nightly-centos-arm64
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-amd64
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-arm64
-i ${REPO_BASE}/samba-client:default-centos-amd64
-i ${REPO_BASE}/samba-client:default-centos-arm64
-i ${REPO_BASE}/samba-client:default-fedora-amd64
-i ${REPO_BASE}/samba-client:default-fedora-arm64
-i ${REPO_BASE}/samba-client:default-opensuse-arm64
-i ${REPO_BASE}/samba-toolbox:default-fedora-amd64
# Please keep the above list of arguments SORTED.
11 changes: 10 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ test-nightly-server: $(BUILDFILE_NIGHTLY_SERVER)

### Check Rules: static checks, quality tools ###

check: check-shell-scripts check-yaml
check: check-shell-scripts check-yaml check-python
.PHONY: check
# rule requires shellcheck and find to run
check-shell-scripts: $(filter $(ALT_BIN)%,$(SHELLCHECK))
Expand All @@ -177,6 +177,15 @@ check-gitlint: $(filter $(ALT_BIN)%,$(GITLINT))
$(GITLINT) -C .gitlint --commits origin/master.. lint
.PHONY: check-gitlint

check-python: _py
_py/bin/flake8 hack/build-image
_py/bin/black --check -l78 hack/build-image
.PHONY: check-python

_py:
python3 -m venv _py
_py/bin/pip install flake8 black


### Misc. Rules ###

Expand Down
Loading