From 26dab998f618264e1c55815c36d54c45f31718a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Fri, 1 May 2026 08:52:19 +0200 Subject: [PATCH 1/6] Fix CI config issues (actually build with different GHC versions) --- .github/workflows/build.yml | 37 +++++++++++++++++-------------------- flake.nix | 6 ++++++ 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 731f9616689..4bc34726348 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,13 +6,13 @@ concurrency: on: pull_request: - branches: main + branches: [ main ] types: - opened - synchronize push: - branches: main + branches: [ main ] paths-ignore: - "configs/**" - "scripts/**" @@ -23,13 +23,10 @@ on: jobs: amazonka-gen: - strategy: - fail-fast: false - runs-on: ubuntu-latest steps: - - uses: cachix/install-nix-action@v22 + - uses: cachix/install-nix-action@v31 with: nix_path: nixpkgs=channel:nixos-unstable extra_nix_config: | @@ -37,12 +34,12 @@ jobs: extra-substituters = https://cache.iog.io experimental-features = nix-command flakes - - uses: cachix/cachix-action@v12 + - uses: cachix/cachix-action@v17 with: name: amazonka authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - run: nix build @@ -68,7 +65,7 @@ jobs: run: |- sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt & - - uses: cachix/install-nix-action@v22 + - uses: cachix/install-nix-action@v31 with: nix_path: nixpkgs=channel:nixos-unstable extra_nix_config: | @@ -76,19 +73,19 @@ jobs: extra-substituters = https://cache.iog.io experimental-features = nix-command flakes - - uses: cachix/cachix-action@v12 + - uses: cachix/cachix-action@v17 with: name: amazonka authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: cabal update && cabal freeze run: | - nix develop --print-build-logs --command \ - bash -c 'cabal update && cabal freeze' '.#${{matrix.ghc}}' + nix develop '.#${{matrix.ghc}}' --print-build-logs --command \ + bash -c 'cabal update && cabal freeze' - - uses: actions/cache@v3 + - uses: actions/cache@v5 with: key: v1-${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} restore-keys: | @@ -99,15 +96,15 @@ jobs: - name: cabal build core run: | - nix develop --print-build-logs --command \ - bash -c 'cabal build amazonka-core amazonka' '.#${{matrix.ghc}}' + nix develop '.#${{matrix.ghc}}' --print-build-logs --command \ + bash -c 'cabal build amazonka-core amazonka' - name: cabal build s3-encryption run: | - nix develop --print-build-logs --command \ - bash -c 'cabal build amazonka-s3-encryption' '.#${{matrix.ghc}}' + nix develop '.#${{matrix.ghc}}' --print-build-logs --command \ + bash -c 'cabal build amazonka-s3-encryption' - name: cabal build all run: | - nix develop --print-build-logs --command \ - bash -c 'cabal test all' '.#${{matrix.ghc}}' + nix develop '.#${{matrix.ghc}}' --print-build-logs --command \ + bash -c 'cabal test all' diff --git a/flake.nix b/flake.nix index e1d737f401b..7e1aa87cda2 100644 --- a/flake.nix +++ b/flake.nix @@ -61,9 +61,13 @@ pkgs.cabal-install # Package Dependencies + pkgs.bzip2 + pkgs.elfutils pkgs.gmp pkgs.ncurses + pkgs.xz pkgs.zlib + pkgs.zstd # Development Tools pkgs.haskellPackages.cabal-fmt @@ -81,6 +85,8 @@ shellHook = pre-commit.shellHook + '' export BOTOCORE=${botocore.outPath} echo "botocore: $BOTOCORE" + export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.bzip2.dev pkgs.elfutils.dev pkgs.xz.dev pkgs.zlib.dev pkgs.zstd.dev ]} + export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [ pkgs.bzip2 pkgs.elfutils pkgs.gmp pkgs.ncurses pkgs.xz pkgs.zlib pkgs.zstd ]}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ''; }; From ec437ff043c6ecd7fa206a724226db266de1632a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Fri, 1 May 2026 09:29:37 +0200 Subject: [PATCH 2/6] elfutils on linux only --- flake.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index 7e1aa87cda2..beb826f505a 100644 --- a/flake.nix +++ b/flake.nix @@ -62,7 +62,6 @@ # Package Dependencies pkgs.bzip2 - pkgs.elfutils pkgs.gmp pkgs.ncurses pkgs.xz @@ -80,13 +79,13 @@ pkgs.gh pkgs.parallel - ]; + ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils; shellHook = pre-commit.shellHook + '' export BOTOCORE=${botocore.outPath} echo "botocore: $BOTOCORE" - export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.bzip2.dev pkgs.elfutils.dev pkgs.xz.dev pkgs.zlib.dev pkgs.zstd.dev ]} - export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [ pkgs.bzip2 pkgs.elfutils pkgs.gmp pkgs.ncurses pkgs.xz pkgs.zlib pkgs.zstd ]}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" ([ pkgs.bzip2.dev pkgs.xz.dev pkgs.zlib.dev pkgs.zstd.dev ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils.dev)} + export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath ([ pkgs.bzip2 pkgs.gmp pkgs.ncurses pkgs.xz pkgs.zlib pkgs.zstd ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils)}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ''; }; From bf29fbfb28607ac3cb9042164d309eb6dd1bf04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Fri, 1 May 2026 15:06:22 +0200 Subject: [PATCH 3/6] Accept flake config --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4bc34726348..4a3f0f5378a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,6 +33,7 @@ jobs: trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= extra-substituters = https://cache.iog.io experimental-features = nix-command flakes + accept-flake-config = true - uses: cachix/cachix-action@v17 with: @@ -72,6 +73,7 @@ jobs: trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= extra-substituters = https://cache.iog.io experimental-features = nix-command flakes + accept-flake-config = true - uses: cachix/cachix-action@v17 with: From 9ac6695f442b34a0ed5740f3331434591655b807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Mon, 4 May 2026 18:02:57 +0200 Subject: [PATCH 4/6] Minimize unnecessary changes --- .github/workflows/build.yml | 2 -- flake.nix | 9 +++------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a3f0f5378a..4bc34726348 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,6 @@ jobs: trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= extra-substituters = https://cache.iog.io experimental-features = nix-command flakes - accept-flake-config = true - uses: cachix/cachix-action@v17 with: @@ -73,7 +72,6 @@ jobs: trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= extra-substituters = https://cache.iog.io experimental-features = nix-command flakes - accept-flake-config = true - uses: cachix/cachix-action@v17 with: diff --git a/flake.nix b/flake.nix index beb826f505a..da60a23e298 100644 --- a/flake.nix +++ b/flake.nix @@ -61,12 +61,9 @@ pkgs.cabal-install # Package Dependencies - pkgs.bzip2 pkgs.gmp pkgs.ncurses - pkgs.xz pkgs.zlib - pkgs.zstd # Development Tools pkgs.haskellPackages.cabal-fmt @@ -79,13 +76,13 @@ pkgs.gh pkgs.parallel - ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils; + ]; shellHook = pre-commit.shellHook + '' export BOTOCORE=${botocore.outPath} echo "botocore: $BOTOCORE" - export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" ([ pkgs.bzip2.dev pkgs.xz.dev pkgs.zlib.dev pkgs.zstd.dev ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils.dev)} - export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath ([ pkgs.bzip2 pkgs.gmp pkgs.ncurses pkgs.xz pkgs.zlib pkgs.zstd ] ++ pkgs.lib.optional pkgs.stdenv.isLinux pkgs.elfutils)}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + '' + pkgs.lib.optionalString pkgs.stdenv.isLinux '' + export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.zlib.dev ]} ''; }; From 43d7881fa5082778d53c783fe1d17588d54f5094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Mon, 4 May 2026 18:33:34 +0200 Subject: [PATCH 5/6] Env var instead of shellHook --- flake.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index da60a23e298..b03a773eb50 100644 --- a/flake.nix +++ b/flake.nix @@ -52,7 +52,7 @@ renameVersion = version: "ghc" + (pkgs.lib.replaceStrings [ "." ] [ "" ] version); - mkDevShell = hsPkgs: pkgs.mkShell { + mkDevShell = hsPkgs: pkgs.mkShell ({ name = "amazonka-${renameVersion hsPkgs.ghc.version}"; buildInputs = [ @@ -81,10 +81,10 @@ shellHook = pre-commit.shellHook + '' export BOTOCORE=${botocore.outPath} echo "botocore: $BOTOCORE" - '' + pkgs.lib.optionalString pkgs.stdenv.isLinux '' - export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.zlib.dev ]} ''; - }; + } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { + PKG_CONFIG_PATH = pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.zlib.dev ]; + }); amazonka-gen = # Use ghc92 because we want hashable ==1.3.* for actual From 2743bfe145d46b65d2dba92e640c9148e7644140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Tue, 5 May 2026 14:27:34 +0200 Subject: [PATCH 6/6] Add changelog entry, add comment to flake.nix --- flake.nix | 2 ++ lib/amazonka/CHANGELOG.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/flake.nix b/flake.nix index b03a773eb50..dfe9da88927 100644 --- a/flake.nix +++ b/flake.nix @@ -83,6 +83,8 @@ echo "botocore: $BOTOCORE" ''; } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { + # Fix build failure of Haskell zlib package ("error: *** stack smashing detected ***: terminated"). + # Without this, pkg-config resolves zlib to whatever zlib is installed on ubuntu GitHub action runners PKG_CONFIG_PATH = pkgs.lib.makeSearchPath "lib/pkgconfig" [ pkgs.zlib.dev ]; }); diff --git a/lib/amazonka/CHANGELOG.md b/lib/amazonka/CHANGELOG.md index 8ba53a67423..d94adfd3731 100644 --- a/lib/amazonka/CHANGELOG.md +++ b/lib/amazonka/CHANGELOG.md @@ -96,6 +96,8 @@ ### Fixed +- Fix GitHub actions CI config issues (not following schema, actually building with different GHC version on ubuntu runners), bump to latest gh action dependencies (fixing deprecated nodejs runtime warnings). +[\#1057](https://github.com/brendanhay/amazonka/pull/1057) - `amazonka`: `Amazonka.Auth.SSO.relativeCachedTokenFile` is now pure [\#1056](https://github.com/brendanhay/amazonka/pull/1056) - `amazonka-core`: `containers ^>= 0.7` is now supported. `containers-0.7` is shipped with GHC 9.10 and 9.12.