]> Nutra Git (v1) - gamesguru/feather.git/commitdiff
add github workflow for guix builds
authortobtoht <tob@featherwallet.org>
Sun, 28 May 2023 14:21:48 +0000 (16:21 +0200)
committertobtoht <tob@featherwallet.org>
Tue, 30 May 2023 00:07:27 +0000 (02:07 +0200)
.github/workflows/guix.yml [new file with mode: 0644]
contrib/guix/guix-build

diff --git a/.github/workflows/guix.yml b/.github/workflows/guix.yml
new file mode 100644 (file)
index 0000000..a5ae264
--- /dev/null
@@ -0,0 +1,94 @@
+name: ci/gh-actions/guix
+
+on:
+  push:
+
+env:
+  APT_SET_CONF: |
+    echo "Acquire::Retries \"3\";"         | sudo tee -a /etc/apt/apt.conf.d/80-custom
+    echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
+    echo "Acquire::ftp::Timeout \"120\";"  | sudo tee -a /etc/apt/apt.conf.d/80-custom
+jobs:
+  build-cross:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        toolchain:
+          - name: "x86_64-linux-gnu"
+            host: "x86_64-linux-gnu"
+          - name: "x86_64-linux-gnu.no-tor-bundle"
+            host: "x86_64-linux-gnu.no-tor-bundle"
+          - name: "aarch64-linux-gnu"
+            host: "aarch64-linux-gnu"
+          - name: "arm-linux-gnueabihf"
+            host: "arm-linux-gnueabihf"
+          - name: "riscv64-linux-gnu"
+            host: "riscv64-linux-gnu"
+          - name: "x86_64-w64-mingw32"
+            host: "x86_64-w64-mingw32"
+          - name: "x86_64-w64-mingw32.installer"
+            host: "x86_64-w64-mingw32.installer"
+          - name: "x86_64-apple-darwin"
+            host: "x86_64-apple-darwin"
+          - name: "arm64-apple-darwin"
+            host: "arm64-apple-darwin"
+    name: ${{ matrix.toolchain.name }}
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+          submodules: recursive
+      - name: guix cache
+        uses: actions/cache@v3
+        with:
+          path: |
+            gnu/store
+            guix_db.sqlite
+          key: depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/guix/manifest.scm') }}
+          restore-keys: |
+            depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/guix/manifest.scm') }}
+            depends-${{ matrix.toolchain.host }}-
+      - name: move guix store
+        run: |
+          if [[ -e "guix_db.sqlite" ]]; then
+              sudo mkdir -p /var/guix/db
+              sudo mv gnu /gnu
+              sudo cp guix_db.sqlite /var/guix/db/db.sqlite
+          
+              sudo chmod 1775 /gnu/store
+              sudo chown 0644 /var/guix/db/db.sqlite
+              sudo chown -R root:root /gnu/store /var/guix/db/db.sqlite
+          fi
+      - name: depends cache
+        uses: actions/cache@v3
+        with:
+          path: contrib/depends/built
+          key: depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
+          restore-keys: |
+            depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
+            depends-${{ matrix.toolchain.host }}-
+      - name: depends sources cache
+        uses: actions/cache@v3
+        with:
+          path: contrib/depends/sources
+          key: depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
+          restore-keys: |
+            depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
+            depends-${{ matrix.toolchain.host }}-
+      - name: set apt conf
+        run: ${{env.APT_SET_CONF}}
+      - name: install dependencies
+        run: sudo apt update; sudo apt -y install guix git ca-certificates ${{ matrix.toolchain.packages }}
+      - name: build
+        run: SUBSTITUTE_URLS='http://ci.guix.gnu.org' HOSTS="${{ matrix.toolchain.host }}" JOBS=2 ./contrib/guix/guix-build
+      - uses: actions/upload-artifact@v3
+        with:
+          name: ${{ matrix.toolchain.name }}
+          path: |
+            guix/guix-build-*/output/${{ matrix.toolchain.host }}/*
+      - name: prepare guix store for caching
+        run: |
+          sudo systemctl stop guix-daemon
+          sudo mv /gnu gnu
+          sudo mv /var/guix/db/db.sqlite guix_db.sqlite
\ No newline at end of file
index 0f803003a37f51c9f603a21c8e86f44a20ac61cd..518379e613b75b8ede736d84e60284a5e171fc67 100755 (executable)
@@ -353,6 +353,7 @@ EOF
                                  --container \
                                  --pure \
                                  --no-cwd \
+                                 ${SUBSTITUTE_URLS:+--substitute-urls="$SUBSTITUTE_URLS"} \
                                  -- env HOST="$HOST"