diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 011844b..1ffce67 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -26,17 +26,17 @@ jobs: - {dockerfile: 'ubuntu', tag: 'rolling', build_args: 'TAG=rolling'} - {dockerfile: 'ubuntu', tag: 'devel', build_args: 'TAG=devel', continue-on-error: 'true'} - {dockerfile: 'opensuse', tag: 'latest', continue-on-error: 'true'} - - {dockerfile: 'fedora', tag: 'latest', build_args: 'GMX_BRANCH=release-2019,GMX_DOUBLE=ON'} + - {dockerfile: 'fedora', tag: 'latest-amd64', build_args: 'GMX_BRANCH=release-2019,GMX_DOUBLE=ON'} + - {dockerfile: 'fedora', tag: 'latest-arm64', build_args: 'GMX_BRANCH=release-2019,GMX_DOUBLE=ON', arm: 'true'} - {dockerfile: 'fedora', tag: 'gmx2019', build_args: 'GMX_BRANCH=release-2019'} - {dockerfile: 'fedora', tag: 'gmx2024_d', build_args: 'GMX_BRANCH=release-2024,GMX_DOUBLE=ON'} - {dockerfile: 'fedora', tag: 'gmx2024', build_args: 'GMX_BRANCH=release-2024'} - {dockerfile: 'fedora', tag: 'gmx9999_d', build_args: 'GMX_BRANCH=main,GMX_DOUBLE=ON', continue-on-error: 'true'} - {dockerfile: 'fedora', tag: 'gmx9999', build_args: 'GMX_BRANCH=main', continue-on-error: 'true'} - {dockerfile: 'fedora', tag: 'nogmx', build_args: 'GMX_BRANCH=none'} - - {dockerfile: 'fedora', tag: 'intel', build_args: 'TAG=38,INTEL=yes,PYTHON=python3.11', continue-on-error: 'true'} - {dockerfile: 'actions', tag: 'latest'} - {dockerfile: 'format', tag: 'latest'} - runs-on: ubuntu-latest + runs-on: ${{ matrix.config.arm == 'true' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -73,3 +73,34 @@ jobs: build-args: ${{ steps.build_args.outputs.args }} pull: true push: ${{ github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) }} + merge-docker-manifest: + runs-on: ubuntu-latest + needs: CI + steps: + - name: Login to Gitlab Container Registry + uses: docker/login-action@v3 + with: + registry: registry.gitlab.com + username: ${{ secrets.GITLAB_REGISTRY_USERNAME }} + password: ${{ secrets.GITLAB_REGISTRY_TOKEN }} + - name: Login to Github Container Registry + if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Create and push manifest images to Github Container Registry + if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) + uses: Noelware/docker-manifest-action@master # or use a pinned version in the Releases tab + with: + inputs: ghcr.io/votca/buildenv/fedora:latest + images: ghcr.io/votca/buildenv/fedora:latest-amd64,ghcr.io/votca/buildenv/fedora:latest-arm64 + push: ${{ github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) }} + - name: Create and push manifest images to GitLab Container Registry + if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) + uses: Noelware/docker-manifest-action@master # or use a pinned version in the Releases tab + with: + inputs: registry.gitlab.com/votca/buildenv/fedora:latest + images: registry.gitlab.com/votca/buildenv/fedora:latest-amd64,registry.gitlab.com/votca/buildenv/fedora:latest-arm64 + push: ${{ github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) }} diff --git a/fedora b/fedora index b19633d..dd49408 100644 --- a/fedora +++ b/fedora @@ -57,7 +57,10 @@ RUN if [ -n "${GMX_BRANCH}" ] && [ "${GMX_BRANCH}" != "none" ]; then \ else \ curl https://gitlab.com/gromacs/gromacs/-/merge_requests/1524.patch | patch -d gromacs -p 1; \ fi && \ - cmake -GNinja -S gromacs -B gromacs/build -DCMAKE_INSTALL_PREFIX=/usr -DGMX_SIMD=SSE2 -DGMX_DOUBLE=${GMX_DOUBLE} ${gmx_cmake_opts} && \ + if [ "$(uname -m)" = "x86_64" ]; then \ + gmx_cmake_opts+=" -DGMX_SIMD=SSE2"; \ + fi && \ + cmake -GNinja -S gromacs -B gromacs/build -DCMAKE_INSTALL_PREFIX=/usr -DGMX_DOUBLE=${GMX_DOUBLE} ${gmx_cmake_opts} && \ cmake --build gromacs/build && \ sudo cmake --install gromacs/build; \ fi