Skip to content

Commit

Permalink
Merge pull request #157 from fhem/perl-threaded
Browse files Browse the repository at this point in the history
Add support for threaded perl
  • Loading branch information
sidey79 authored Mar 10, 2024
2 parents cc169c2 + 6643867 commit 3ffb5f4
Show file tree
Hide file tree
Showing 3 changed files with 348 additions and 34 deletions.
59 changes: 31 additions & 28 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
base_build:
strategy:
matrix:
dockerfile: [Dockerfile-bullseye]
dockerfile: [-bullseye, -threaded-bullseye]
platform: [arm/v7, amd64, arm64, 386]
runs-on: ubuntu-latest
steps:
Expand All @@ -100,7 +100,7 @@ jobs:
with:
context: .
load: true
file: ./${{ matrix.dockerfile }}
file: ./Dockerfile${{ matrix.dockerfile }}
platforms: linux/${{ matrix.platform }}
push: false
target: base
Expand All @@ -115,8 +115,10 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
dockerfile: [Dockerfile-bullseye]
dockerfile: [-bullseye, -threaded-bullseye]
# Steps represent a sequence of tasks that will be executed as part of the job
env:
TAG_LATEST: ${{ (contains(matrix.dockerfile,'threaded') && github.event.release.prerelease == 1) && 'false' || 'auto' }}
steps:
- name: Checkout this repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -163,20 +165,20 @@ jobs:
ghcr.io/${{ github.repository_owner }}/fhem-docker
fhem/fhem
flavor: |
latest= ${{ fromJSON('["auto", "false"]')[github.event.release.prerelease == 1 || endsWith(matrix.dockerfile, 'Dockerfile')] }}
latest= ${{ env.TAG_LATEST }}
tags: |
type=semver,pattern={{version}},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=ref,event=branch,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=ref,event=pr,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=semver,pattern={{version}},suffix=${{ matrix.dockerfile }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ matrix.dockerfile }}
type=ref,event=branch,suffix=${{ matrix.dockerfile }}
type=ref,event=pr,suffix=${{ matrix.dockerfile }}
- name: Build for bats with fhem base layer
uses: docker/build-push-action@v5
id: docker_build_bats
with:
context: .
load: true
file: ./${{ matrix.dockerfile }}
file: ./Dockerfile${{ matrix.dockerfile }}
platforms: linux/amd64
push: false
target: with-fhem-bats
Expand Down Expand Up @@ -204,7 +206,7 @@ jobs:
with:
context: .
load: true
file: ./${{ matrix.dockerfile }}
file: ./Dockerfile${{ matrix.dockerfile }}
platforms: linux/amd64
push: false
target: with-fhem-python-nodejs
Expand Down Expand Up @@ -244,8 +246,9 @@ jobs:
needs: test_build
strategy:
matrix:
dockerfile: [Dockerfile-bullseye]

dockerfile: [-bullseye, -threaded-bullseye]
env:
TAG_LATEST: ${{ (contains(matrix.dockerfile,'threaded') && github.event.release.prerelease == 1) && 'false' || 'auto' }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout this repository
Expand Down Expand Up @@ -289,21 +292,21 @@ jobs:
ghcr.io/${{ github.repository_owner }}/fhem-docker
fhem/fhem
flavor: |
latest= ${{ fromJSON('["auto", "false"]')[github.event.release.prerelease == 1] }}
latest= ${{ env.TAG_LATEST }}
tags: |
type=semver,pattern={{version}},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=ref,event=branch,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }},enable=${{ github.event.release.prerelease == 0 && env.GITHUB_REF_SLUG != 'master' }}
type=ref,event=pr,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=raw,enable=${{ env.GITHUB_REF_SLUG == 'master' }},priority=200,prefix=,suffix=${{ fromJSON('["bullseye", "buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }},value=
type=semver,pattern={{version}},suffix=${{ matrix.dockerfile }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ matrix.dockerfile }}
type=ref,event=branch,suffix=${{ matrix.dockerfile }},enable=${{ github.event.release.prerelease == 0 && env.GITHUB_REF_SLUG != 'master' }}
type=ref,event=pr,suffix=${{ matrix.dockerfile }}
type=raw,enable=${{ env.GITHUB_REF_SLUG == 'master' }},priority=200,prefix=,suffix=${{ matrix.dockerfile }},value=
- name: Build and push cross compiled fhem, python and nodejs layer on supported platforms
uses: docker/build-push-action@v5
id: docker_build
with:
context: .
load: false
file: ./${{ matrix.dockerfile }}
file: ./Dockerfile${{ matrix.dockerfile }}
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
target: with-fhem-python-nodejs
Expand All @@ -323,7 +326,7 @@ jobs:
L_USAGE=${{ github.server_url }}/${{ github.repository }}/blob/${{ github.sha }}/README.md
L_VCS_URL=${{ github.server_url }}/${{ github.repository }}/
L_AUTHORS=${{ github.server_url }}/${{ github.repository }}/graphs/contributors
L_DESCR=A full blown Docker image for FHEM house automation system, based on Debian ${{ fromJSON('["bullseye", "buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}.
L_DESCR=A full blown Docker image for FHEM house automation system, based on Debian Perl ${{ matrix.dockerfile }}.
- name: Docker meta
id: meta_base
Expand All @@ -333,21 +336,21 @@ jobs:
ghcr.io/${{ github.repository_owner }}/fhem-minimal-docker
fhem/fhem-minimal
flavor: |
latest= ${{ fromJSON('["auto", "false"]')[github.event.release.prerelease == 1] }}
latest= ${{ env.TAG_LATEST }}
tags: |
type=semver,pattern={{version}},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=ref,event=branch,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }},enable=${{ github.event.release.prerelease == 0 && env.GITHUB_REF_SLUG != 'master' }}
type=ref,event=pr,suffix=${{ fromJSON('["-bullseye", "-buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}
type=raw,enable=${{ env.GITHUB_REF_SLUG == 'master' }},priority=200,prefix=,suffix=${{ fromJSON('["bullseye", "buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }},value=
type=semver,pattern={{version}},suffix=${{ matrix.dockerfile }}
type=semver,pattern={{major}},enable=${{ github.event.release.prerelease == 0 }},suffix=${{ matrix.dockerfile }}
type=ref,event=branch,suffix=${{ matrix.dockerfile }},enable=${{ github.event.release.prerelease == 0 && env.GITHUB_REF_SLUG != 'master' }}
type=ref,event=pr,suffix=${{ matrix.dockerfile }}
type=raw,enable=${{ env.GITHUB_REF_SLUG == 'master' }},priority=200,prefix=,suffix=${{ matrix.dockerfile }},value=
- name: Build and push cross compiled base image on supported platforms
uses: docker/build-push-action@v5
id: docker_build_base
with:
context: .
load: false
file: ./${{ matrix.dockerfile }}
file: ./Dockerfile${{ matrix.dockerfile }}
platforms: linux/386,linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
target: with-fhem
Expand All @@ -368,4 +371,4 @@ jobs:
L_USAGE=${{ github.server_url }}/${{ github.repository }}/blob/${{ github.sha }}/README.md
L_VCS_URL=${{ github.server_url }}/${{ github.repository }}/
L_AUTHORS=${{ github.server_url }}/${{ github.repository }}/graphs/contributors
L_DESCR=A minimal (perl) Docker image for FHEM house automation system, based on Debian ${{ fromJSON('["bullseye", "buster"]')[endsWith(matrix.dockerfile, 'Dockerfile')] }}.
L_DESCR=A minimal (perl) Docker image for FHEM house automation system, based on Debian Perl ${{ matrix.dockerfile }}.
Loading

0 comments on commit 3ffb5f4

Please sign in to comment.