Update btcpayserver to 1.13.5 #158
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CADR CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ master, bullseye ] | |
pull_request: | |
branches: [ master, bullseye ] | |
env: | |
USER_NAME: user | |
REPO_DIR: /home/user/cryptoanarchy-deb-repo-builder | |
BUILD_DIR: /home/user/cadr-build | |
IMAGE_NAME: cadr/cadr | |
CONTAINER_NAME: cadr | |
CI_SCRIPT: ci/build.sh | |
PODMAN_CMD: "sudo -E XDG_RUNTIME_DIR= podman" | |
SPAWN_CONTAINER: "$PODMAN_CMD run --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged --systemd=true -d -v $PWD:$REPO_DIR --name=$CONTAINER_NAME $IMAGE_NAME" | |
EXECUTE_CMD: "$PODMAN_CMD exec -u $USER_NAME -i $CONTAINER_NAME" | |
jobs: | |
prepare: | |
runs-on: ubuntu-latest | |
outputs: | |
sources: ${{ steps.list-sources.outputs.sources }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check CADR image cache | |
id: cache-cadr-image | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-cadr-image | |
with: | |
path: CADR_image.tar | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }} | |
lookup-only: true | |
- name: Build CADR Running Environment Image | |
if: steps.cache-cadr-image.outputs.cache-hit != 'true' | |
run: | | |
sudo apt-get update | |
sudo apt-get upgrade podman | |
$PODMAN_CMD build -t $IMAGE_NAME . | |
$PODMAN_CMD save $IMAGE_NAME > CADR_image.tar | |
- name: List sources | |
id: list-sources | |
run: echo "sources=$(ls build_rules/*.yaml | grep -v remir | sed -e 's:^build_rules/::' -e 's/\.yaml$//' | jq -R -s -c 'split("\n")[:-1]')" >> "$GITHUB_OUTPUT" | |
build: | |
needs: prepare | |
if: ${{ success() }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
source: ${{ fromJson(needs.prepare.outputs.sources) }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch CADR image cache | |
id: cache-cadr-image | |
uses: actions/cache/restore@v3 | |
env: | |
cache-name: cache-cadr-image | |
with: | |
path: CADR_image.tar | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }} | |
- name: Load Running Environment Image | |
run: | | |
$PODMAN_CMD load < CADR_image.tar | |
mkdir build | |
- name: Spawn Podman Container to Prepare Running Environment | |
run: | | |
eval $SPAWN_CONTAINER | |
- name: Get cache key | |
id: get-cache-key | |
run: | | |
eval $EXECUTE_CMD bash "${REPO_DIR}/ci/get_cache_key.sh" "${{ matrix.source }}" >> $GITHUB_OUTPUT | |
- name: Fetch package cache | |
id: cache-packages | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-packages | |
with: | |
path: packages | |
key: packages-${{ steps.get-cache-key.outputs.packages-cache-key }} | |
- name: Build packages | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
sudo mkdir -p -m 777 packages | |
eval $EXECUTE_CMD bash "${REPO_DIR}/$CI_SCRIPT" "${{ matrix.source }}" | |
- name: Upload Debian Packages Just Built to Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.source }} | |
path: packages | |
- name: Check SHA256 | |
run: | | |
sudo chown -R $USER packages | |
cd packages | |
for file in *.deb | |
do | |
sha256sum $file > ${file}.sha256sum | |
cat $file.sha256sum | |
done | |
# Yes, this downloading of the cache and then uploding artifact is silly. I didn't figure out how to do it better, feel free to send a PR! | |
- name: Upload SHA256 of Debian Packages Just Built to Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: CADR_debs_sha256sum | |
path: packages/*.deb.sha256sum | |
- name: Fix the Dir Permission for Post checkout | |
run: | | |
sudo chown -R $USER $PWD | |
test: | |
needs: [build, prepare] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
package: ["bitcoind", "bitcoin-mainnet", "bitcoin-regtest", | |
"bitcoin-pruned-mainnet", "bitcoin-fullchain-mainnet", "bitcoin-fullchain-regtest", | |
"bitcoin-txindex-mainnet", "bitcoin-zmq-mainnet", "bitcoin-zmq-regtest", | |
"bitcoin-rpc-proxy", "bitcoin-rpc-proxy-mainnet", "bitcoin-rpc-proxy-regtest", | |
"bitcoin-timechain-mainnet", "electrs", "electrs-mainnet", "electrs-regtest", | |
"btcpayserver", "btcpayserver-system-mainnet", "btcpayserver-system-regtest", | |
"lnd", "lnd-system-mainnet", "lnd-system-regtest","lnd-unlocker-system-mainnet", | |
"lnd-unlocker-system-mainnet", "nbxplorer", "nbxplorer-regtest", "nbxplorer-mainnet", | |
"selfhost", "selfhost-nginx", "selfhost-onion", "selfhost-clearnet", | |
"selfhost-clearnet-certbot", "tor-hs-patch-config", "thunderhub", | |
"thunderhub-system-mainnet", "thunderhub-system-regtest", "btc-rpc-explorer-mainnet", | |
"lndconnect", "selfhost-dashboard-bin", "selfhost-dashboard", "btc-transmuter", | |
"btc-transmuter-system-mainnet", "btc-transmuter-system-regtest"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Test Prefix | |
run: | | |
echo "TEST_PREFIX=sudo chown -R $USER_NAME $REPO_DIR && cd $REPO_DIR && make BUILD_DIR=$REPO_DIR/packages" >> $GITHUB_ENV | |
- name: Prepare Podman Container Running Environment | |
run: | | |
sudo apt-get update | |
sudo apt-get upgrade podman | |
- name: Fetch CADR image cache | |
id: cache-cadr-image | |
uses: actions/cache/restore@v3 | |
env: | |
cache-name: cache-cadr-image | |
with: | |
path: CADR_image.tar | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }} | |
- name: Load Running Environment Image | |
run: | | |
$PODMAN_CMD load < CADR_image.tar | |
mkdir build | |
- name: Download Pre-built Debian Packages | |
uses: thecodenebula/download-artifact@e9e49e9bbce8ff2b901957ee034714cab099644a | |
with: | |
#name: ${{ join(fromJson(needs.prepare.outputs.sources), '\n') }} | |
path: packages | |
- name: Test CADR Basic | |
run: | | |
mkdir -p build | |
mv packages/*/*.deb packages/ | |
eval $SPAWN_CONTAINER | |
eval $EXECUTE_CMD bash -c "\"$TEST_PREFIX test-here-basic-${{ matrix.package }}\"" | |
$PODMAN_CMD rm -f $CONTAINER_NAME | |
- name: Test CADR Upgrade | |
run: | | |
eval $SPAWN_CONTAINER | |
eval $EXECUTE_CMD bash -c "\"$TEST_PREFIX SPLIT_STRATEGY=upgrade test-here-upgrade-${{ matrix.package }}\"" | |
- name: Fix the Dir Permission for Post checkout | |
run: | | |
sudo chown -R $USER $PWD | |
test-multi-package: | |
needs: [build, prepare] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test: ["btcpayserver-regtest", "electrum"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Test Prefix | |
run: | | |
echo "TEST_PREFIX=sudo chown -R $USER_NAME $REPO_DIR && cd $REPO_DIR && make BUILD_DIR=$REPO_DIR/packages" >> $GITHUB_ENV | |
- name: Prepare Podman Container Running Environment | |
run: | | |
sudo apt-get update | |
sudo apt-get upgrade podman | |
- name: Fetch CADR image cache | |
id: cache-cadr-image | |
uses: actions/cache/restore@v3 | |
env: | |
cache-name: cache-cadr-image | |
with: | |
path: CADR_image.tar | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }} | |
- name: Load Running Environment Image | |
run: | | |
$PODMAN_CMD load < CADR_image.tar | |
mkdir build | |
- name: Download Pre-built Debian Packages | |
uses: thecodenebula/download-artifact@e9e49e9bbce8ff2b901957ee034714cab099644a | |
with: | |
#name: ${{ join(fromJson(needs.prepare.outputs.sources), '\n') }} | |
path: packages | |
- name: Test multi-package CADR integration | |
run: | | |
mv packages/*/*.deb packages | |
eval $SPAWN_CONTAINER | |
eval $EXECUTE_CMD bash -c "\"$TEST_PREFIX test-here-multi-package-${{ matrix.test }}\"" | |
$PODMAN_CMD rm -f $CONTAINER_NAME | |
- name: Fix the Dir Permission for Post checkout | |
run: | | |
sudo chown -R $USER $PWD |