Merge #6401: ci: deduplicate depends building

2f18c1af30 ci: deduplicate depends building (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Currently we build the same host / options multiple times. Don't do this!

  ## What was done?
  Now building depends only twice

  ## How Has This Been Tested?
  Local CI appears to be working

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  kwvg:
    utACK 2f18c1af30
  UdjinM6:
    utACK 2f18c1af30

Tree-SHA512: 67460508a2e9458152f7c8bb5f4a1a786aedcfded0e5c54fb03d85010ba8bb87362b66a0c322b51aeba75752e36418fc235d8dc4197ef10695e234ccc5a00a39
This commit is contained in:
pasta 2024-11-18 13:18:03 -06:00
commit cde4d0294a
No known key found for this signature in database
GPG Key ID: E2F3D7916E722D38

View File

@ -25,7 +25,6 @@ jobs:
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Prepare - name: Prepare
id: prepare id: prepare
run: | run: |
@ -68,18 +67,6 @@ jobs:
host: arm-linux-gnueabihf host: arm-linux-gnueabihf
- build_target: linux64 - build_target: linux64
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
- build_target: linux64_tsan
host: x86_64-pc-linux-gnu
- build_target: linux64_ubsan
host: x86_64-pc-linux-gnu
- build_target: linux64_fuzz
host: x86_64-pc-linux-gnu
- build_target: linux64_cxx20
host: x86_64-pc-linux-gnu
- build_target: linux64_sqlite
host: x86_64-pc-linux-gnu
- build_target: linux64_nowallet
host: x86_64-pc-linux-gnu
container: container:
image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }} image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }}
@ -90,7 +77,6 @@ jobs:
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Cache depends sources - name: Cache depends sources
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
@ -113,6 +99,12 @@ jobs:
- name: Build dependencies - name: Build dependencies
run: make -j$(nproc) -C depends HOST=${{ matrix.host }} run: make -j$(nproc) -C depends HOST=${{ matrix.host }}
- name: Upload built depends
uses: actions/upload-artifact@v4
with:
name: depends-${{ matrix.build_target }}
path: depends/${{ matrix.host }}
build: build:
name: Build name: Build
needs: [build-image, build-depends] needs: [build-image, build-depends]
@ -123,20 +115,28 @@ jobs:
include: include:
- build_target: arm-linux - build_target: arm-linux
host: arm-linux-gnueabihf host: arm-linux-gnueabihf
depends_on: arm-linux
- build_target: linux64 - build_target: linux64
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_tsan - build_target: linux64_tsan
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_ubsan - build_target: linux64_ubsan
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_fuzz - build_target: linux64_fuzz
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_cxx20 - build_target: linux64_cxx20
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_sqlite - build_target: linux64_sqlite
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
- build_target: linux64_nowallet - build_target: linux64_nowallet
host: x86_64-pc-linux-gnu host: x86_64-pc-linux-gnu
depends_on: linux64
container: container:
image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }} image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }}
options: --user root options: --user root
@ -146,16 +146,11 @@ jobs:
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Download built depends
- name: Restore Cache dependencies uses: actions/download-artifact@v4
uses: actions/cache/restore@v4
with: with:
path: | name: depends-${{ matrix.depends_on }}
depends/${{ matrix.host }} path: depends/${{ matrix.host }}
key: ${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }}
restore-keys: |
${{ runner.os }}-depends-${{ matrix.build_target }}-${{ hashFiles('depends/packages/*') }}
${{ runner.os }}-depends-${{ matrix.build_target }}
- name: Determine PR Base SHA - name: Determine PR Base SHA
id: vars id: vars
@ -192,32 +187,3 @@ jobs:
name: build-artifacts-${{ matrix.build_target }} name: build-artifacts-${{ matrix.build_target }}
path: | path: |
/output /output
# Come back to this later and implement tests :)
# test:
# name: Test
# needs: [build-image, build]
# runs-on: ubuntu-22.04
# container:
# image: ghcr.io/${{ needs.build-image.outputs.repo-name }}/dashcore-ci-runner:${{ needs.build-image.outputs.image-tag }}
# options: --user root
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# ref: ${{ github.event.pull_request.head.sha }}
#
# - name: Download build artifacts
# uses: actions/download-artifact@v4
# with:
# name: build-artifacts
# path: src/
#
## - name: Setup environment
## run: |
## echo "BUILD_TARGET=${{ needs.build.matrix.build_target }}"
## source ./ci/dash/matrix.sh
#
# - name: Run integration tests
# run: ./ci/dash/test_integrationtests.sh --extended --exclude feature_pruning,feature_dbcrash