From 29cee69f8a435056170313f22e2221fa80173f67 Mon Sep 17 00:00:00 2001 From: Bryan Richter Date: Mon, 13 Apr 2026 10:20:48 +0300 Subject: [PATCH] Make the reusable workflow a reusable action --- .github/actions/stack-test/action.yml | 22 ++++++++++++++++++++++ .github/workflows/build.yml | 6 +++++- .github/workflows/cache-warmup.yaml | 6 +++++- .github/workflows/stack-test.yml | 25 ------------------------- 4 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 .github/actions/stack-test/action.yml delete mode 100644 .github/workflows/stack-test.yml diff --git a/.github/actions/stack-test/action.yml b/.github/actions/stack-test/action.yml new file mode 100644 index 0000000..bc6e650 --- /dev/null +++ b/.github/actions/stack-test/action.yml @@ -0,0 +1,22 @@ +name: stack test +description: Build and test with stack +runs: + using: composite + steps: + - uses: haskell/ghcup-setup@v1 + id: ghcup + with: + stack-hook: true + - uses: actions/cache@v4 + with: + path: | + ${{ steps.ghcup.outputs.basedir }} + ~/.stack + key: stack-${{ runner.os }}-${{ hashFiles('stack.yaml') }} + restore-keys: | + stack-${{ runner.os }}- + ${{ runner.os }}- + - run: ghcup install stack + shell: bash + - run: stack test + shell: bash diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e702717..11d6768 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,11 @@ concurrency: cancel-in-progress: true jobs: stack-test: - uses: ./.github/workflows/stack-test.yml + name: stack test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: ./.github/actions/stack-test flake-check: name: flake check and push diff --git a/.github/workflows/cache-warmup.yaml b/.github/workflows/cache-warmup.yaml index 625cba4..88b7607 100644 --- a/.github/workflows/cache-warmup.yaml +++ b/.github/workflows/cache-warmup.yaml @@ -6,4 +6,8 @@ on: workflow_dispatch: jobs: stack-test: - uses: ./.github/workflows/stack-test.yml + name: stack test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: ./.github/actions/stack-test diff --git a/.github/workflows/stack-test.yml b/.github/workflows/stack-test.yml deleted file mode 100644 index bab0438..0000000 --- a/.github/workflows/stack-test.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Reusable workflow used by the others. Not called directly usually. -name: stack test -on: - workflow_call: -jobs: - stack-test: - name: stack test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: haskell/ghcup-setup@v1 - id: ghcup - with: - stack-hook: true - - uses: actions/cache@v4 - with: - path: | - ${{ steps.ghcup.outputs.basedir }} - ~/.stack - key: stack-${{ runner.os }}-${{ hashFiles('stack.yaml') }} - restore-keys: | - stack-${{ runner.os }}- - ${{ runner.os }}- - - run: ghcup install stack - - run: stack test