The ./hs Docker wrapper runs docker inside the Gitea runner container. Since project paths inside the runner container don't exist on the Docker host, the volume mount creates an empty /work directory, and Stack finds no packages (error S-8506). Fix: install Stack directly via get.haskellstack.org, use STACK_ROOT for caching, and build with stack directly (no Docker-in-Docker). Also add symlink for gitea-actions.sh convenience script.
This commit is contained in:
@@ -9,24 +9,26 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CONVERGE_HASKELL_TOOLS_IMAGE: ghcr.io/flipstone/haskell-tools:debian-ghc-9.10.3-5d6640d
|
||||
STACK_ROOT: .stack-root
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: .
|
||||
|
||||
- name: Install Stack
|
||||
run: |
|
||||
curl -sSL https://get.haskellstack.org/ | sh
|
||||
|
||||
- name: Cache Stack
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .stack-root
|
||||
key: stack-${{ runner.os }}-${{ hashFiles('stack.yaml', 'package.yaml') }}
|
||||
restore-keys: stack-${{ runner.os }}-
|
||||
key: stack-v2-${{ runner.os }}-${{ hashFiles('stack.yaml', 'package.yaml') }}
|
||||
restore-keys: stack-v2-${{ runner.os }}-
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
mkdir -p .stack-root build
|
||||
./hs stack build --copy-bins --local-bin-path /work/build
|
||||
mkdir -p build
|
||||
stack build --copy-bins --local-bin-path ./build
|
||||
|
||||
- name: Compress with UPX
|
||||
run: |
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../.pi/skills/gitea-actions/scripts/gitea-actions.sh
|
||||
Reference in New Issue
Block a user