From 8e05fa99d83e1cab0ef3dd09b018deb611eb14b3 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 26 Sep 2024 15:21:53 -0600 Subject: [PATCH 1/4] fedora: fix GMX_SIMD for arm64 --- fedora | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fedora b/fedora index b19633d..6538fd3 100644 --- a/fedora +++ b/fedora @@ -57,7 +57,7 @@ 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} && \ + cmake -GNinja -S gromacs -B gromacs/build -DCMAKE_INSTALL_PREFIX=/usr $(if [ "$(uname -m)" = "x86_64"; then echo -DGMX_SIMD=SSE2; fi) -DGMX_DOUBLE=${GMX_DOUBLE} ${gmx_cmake_opts} && \ cmake --build gromacs/build && \ sudo cmake --install gromacs/build; \ fi From b7ab61e5c4feccc0f50187db23eb4031b63b33b8 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 26 Sep 2024 15:10:46 -0600 Subject: [PATCH 2/4] CI: add arm64 builds --- .../continuous-integration-workflow.yml | 30 +++++++++++++++++-- fedora | 5 +++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 011844b..c27ed42 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -26,7 +26,8 @@ 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'} @@ -36,7 +37,7 @@ jobs: - {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 +74,28 @@ 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: + if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) + runs-on: ubuntu-latest + needs: CI + steps: + - name: Login to Gitlab Container Registry + if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) + 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 + uses: Noelware/docker-manifest-action@master # or use a pinned version in the Releases tab + with: + inputs: ghcr.io/votca/buildenv/fedora:latest,registry.gitlab.com/votca/buildenv/fedora:latest + images: ghcr.io/votca/buildenv/fedora:latest-amd64,ghcr.io/votca/buildenv/fedora:latest-arm64 + push: true diff --git a/fedora b/fedora index 6538fd3..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 $(if [ "$(uname -m)" = "x86_64"; then echo -DGMX_SIMD=SSE2; fi) -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 From 2b2aa39adc4bcbec4f7e698f832e80504fda41d3 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Sat, 18 Jan 2025 12:56:46 -0700 Subject: [PATCH 3/4] CI: always try the merge --- .../continuous-integration-workflow.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index c27ed42..ad5b5e8 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -75,12 +75,10 @@ jobs: pull: true push: ${{ github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) }} merge-docker-manifest: - if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) runs-on: ubuntu-latest needs: CI steps: - name: Login to Gitlab Container Registry - if: github.repository_owner == 'votca' && ( github.event_name == 'push' || github.event_name == 'schedule' ) uses: docker/login-action@v3 with: registry: registry.gitlab.com @@ -93,9 +91,17 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Create and push manifest images + - 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,registry.gitlab.com/votca/buildenv/fedora:latest + inputs: ghcr.io/votca/buildenv/fedora:latest images: ghcr.io/votca/buildenv/fedora:latest-amd64,ghcr.io/votca/buildenv/fedora:latest-arm64 - push: true + 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' ) }} From 2bf6056f51d77353cfa86d16bc5067822f05229f Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Sun, 19 Jan 2025 07:56:40 -0700 Subject: [PATCH 4/4] CI: drop old intel build on Fedora --- .github/workflows/continuous-integration-workflow.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index ad5b5e8..1ffce67 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -34,7 +34,6 @@ jobs: - {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: ${{ matrix.config.arm == 'true' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}