Build Docker image for ARM (#2) #7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and publish Images/Packages | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "v*.*.*" | |
pull_request: | |
branches: | |
- main | |
concurrency: build_and_publish_concurrency_group-${{ github.event.pull_request.number || github.ref_name }} | |
env: | |
IMAGE_NAME: ${{ github.repository }} | |
IMAGE_REGISTRY: ghcr.io | |
REGISTRY_USER: ${{ github.actor }} | |
REGISTRY_PASSWORD: ${{ github.token }} | |
jobs: | |
create-and-publish-packages: | |
runs-on: ubuntu-latest | |
permissions: | |
# write is required for creating releases | |
contents: write | |
packages: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Log in to the Container registry | |
uses: docker/login-action@40891eba8c2bcd1309b07ba8b11232f313e86779 | |
with: | |
registry: ${{ env.IMAGE_REGISTRY }} | |
username: ${{ env.REGISTRY_USER }} | |
password: ${{ env.REGISTRY_PASSWORD }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db | |
- name: Build packager | |
uses: docker/build-push-action@91df6b874e498451163feb47610c87c4a218c1ee | |
with: | |
context: . | |
target: packager | |
load: true | |
tags: packager | |
- name: Extract built package | |
run: | | |
ID=$(docker create packager) | |
docker cp $ID:/opt/slurm.tar.gz . | |
docker rm $ID | |
- name: Upload package | |
uses: actions/upload-artifact@v2 | |
with: | |
name: slurm | |
path: slurm.tar.gz | |
- name: Extract metadata (tags, labels) for slurmctld | |
id: slurmctld-meta | |
uses: docker/metadata-action@c4ee3adeed93b1fa6a762f209fb01608c1a22f1e | |
with: | |
images: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }} | |
flavor: | | |
suffix=-slurmctld | |
tags: | | |
type=schedule | |
type=ref,event=branch | |
type=ref,event=tag | |
type=ref,event=pr | |
type=sha,format=long | |
- name: Build and push slurmctld image | |
uses: docker/build-push-action@91df6b874e498451163feb47610c87c4a218c1ee | |
with: | |
context: . | |
target: slurmctld | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
build-args: | | |
DOCKER_METADATA_OUTPUT_JSON | |
tags: ${{ steps.slurmctld-meta.outputs.tags }} | |
labels: ${{ steps.slurmctld-meta.outputs.labels }} | |
- name: Extract metadata (tags, labels) for slurmdbd | |
id: slurmdbd-meta | |
uses: docker/metadata-action@c4ee3adeed93b1fa6a762f209fb01608c1a22f1e | |
with: | |
images: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }} | |
flavor: | | |
suffix=-slurmdbd | |
tags: | | |
type=schedule | |
type=ref,event=branch | |
type=ref,event=tag | |
type=ref,event=pr | |
type=sha,format=long | |
- name: Build and push slurmdbd image | |
uses: docker/build-push-action@91df6b874e498451163feb47610c87c4a218c1ee | |
with: | |
context: . | |
target: slurmdbd | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
build-args: | | |
DOCKER_METADATA_OUTPUT_JSON | |
tags: ${{ steps.slurmdbd-meta.outputs.tags }} | |
labels: ${{ steps.slurmdbd-meta.outputs.labels }} | |
- name: Release | |
uses: softprops/action-gh-release@975c1b265e11dd76618af1c374e7981f9a6ff44a | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
slurm.tar.gz |