diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index beea6e6e8..b018c083d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -241,6 +241,95 @@ jobs: path-to-profile: coverage.txt parallel: true + ######################## + # run integration tests + ######################## + integration-test: + name: run itests + runs-on: ubuntu-latest + strategy: + # Allow other tests in the matrix to continue if one fails. + fail-fast: false + matrix: + integration_type: + - backend=btcd + - backend=bitcoind + - backend="bitcoind notxindex" + - backend=bitcoind dbbackend=etcd + - backend=bitcoind dbbackend=postgres + - backend=neutrino + steps: + - name: git checkout + uses: actions/checkout@v2 + + - name: go cache + uses: actions/cache@v1 + with: + path: /home/runner/work/go + key: lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- + lnd-${{ runner.os }}-go- + + - name: setup go ${{ env.GO_VERSION }} + uses: actions/setup-go@v2 + with: + go-version: '${{ env.GO_VERSION }}' + + - name: install bitcoind + run: ./scripts/install_bitcoind.sh + + - name: run ${{ matrix.unit_type }} + run: make itest-parallel ${{ matrix.unit_type }} + + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: logs + path: lntest/itest/**/*.log + retention-days: 5 + + ######################## + # run windows integration test + ######################## + windows-integration-test: + name: run windows itest + runs-on: windows-latest + env: + GOCACHE: ${{ github.workspace }}/go/pkg/build + GOPATH: ${{ github.workspace }}/go + steps: + - name: git checkout + uses: actions/checkout@v2 + + - name: go cache + uses: actions/cache@v1 + with: + path: ${{ env.GOPATH }} + key: lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- + lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- + lnd-${{ runner.os }}-go- + + - name: setup go ${{ env.GO_VERSION }} + uses: actions/setup-go@v2 + with: + go-version: '${{ env.GO_VERSION }}' + + - name: run itest + run: make itest-parallel windows=1 tranches=2 parallel=2 + + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: logs + path: lntest/itest/**/*.log + retention-days: 5 + ######################## # check pinned dependencies ######################## @@ -260,7 +349,7 @@ jobs: uses: actions/checkout@v2 - name: ensure dependences at correct version - run: if ! grep -q "${{ matrix.pinned_dep }}" go.mod; then echo dependency ${{ matrix.pinned_dep }} should not be altered ; exit 1 ; fi + run: if ! grep -q "${{ matrix.pinned_dep }}" go.mod; then echo dependency ${{ matrix.pinned_dep }} should not be altered ; exit 1 ; fi ######################## # check PR updates release notes diff --git a/.travis.yml b/.travis.yml index c82d7a990..ea68576c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,35 +47,7 @@ jobs: - GOGC=30 make lint - stage: Integration Test - name: Btcd Integration - script: - - make itest-parallel - - - name: Bitcoind Integration (txindex enabled) - script: - - bash ./scripts/install_bitcoind.sh - - make itest-parallel backend=bitcoind - - - name: Bitcoind Integration with etcd (txindex enabled) - script: - - bash ./scripts/install_bitcoind.sh - - make itest-parallel backend=bitcoind dbbackend=etcd - - - name: Bitcoind Integration with postgres (txindex enabled) - script: - - bash ./scripts/install_bitcoind.sh - - make itest-parallel backend=bitcoind dbbackend=postgres POSTGRES_START_DELAY=10 - - - name: Bitcoind Integration (txindex disabled) - script: - - bash ./scripts/install_bitcoind.sh - - make itest-parallel backend="bitcoind notxindex" - - - name: Neutrino Integration - script: - - make itest-parallel backend=neutrino - - - name: Bitcoind Integration ARM + name: Bitcoind Integration ARM script: - bash ./scripts/install_bitcoind.sh - GOARM=7 GOARCH=arm GOOS=linux make itest-parallel backend=bitcoind tranches=2 parallel=2 @@ -83,35 +55,8 @@ jobs: services: - docker - - name: Btcd Integration Windows - script: - # The windows VM seems to be slower than the other Travis VMs. We only - # run 2 test suites in parallel instead of the default 4. - - make itest-parallel windows=1 tranches=2 parallel=2 - os: windows - before_install: - - choco upgrade --no-progress -y make netcat curl findutils - - export MAKE=mingw32-make - after_failure: - - |- - case $TRAVIS_OS_NAME in - windows) - echo "Uploading to termbin.com..." - LOG_FILES=$(find ./lntest/itest -name '*.log') - for f in $LOG_FILES; do echo -n $f; cat $f | nc termbin.com 9999 | xargs -r0 printf ' uploaded to %s'; done - ;; - esac - after_failure: - |- - case $TRAVIS_OS_NAME in - windows) - # Needs other commands, see after_script of the Windows build - ;; - - *) - LOG_FILES=$(find ./lntest/itest -name '*.log') - echo "Uploading to termbin.com..." && for f in $LOG_FILES; do echo -n $f; cat $f | nc termbin.com 9999 | xargs -r0 printf ' uploaded to %s'; done - echo "Uploading to file.io..." && tar -zcvO $LOG_FILES | curl -s -F 'file=@-;filename=logs.tar.gz' https://file.io | xargs -r0 printf 'logs.tar.gz uploaded to %s\n' - ;; - esac + LOG_FILES=$(find ./lntest/itest -name '*.log') + echo "Uploading to termbin.com..." && for f in $LOG_FILES; do echo -n $f; cat $f | nc termbin.com 9999 | xargs -r0 printf ' uploaded to %s'; done + echo "Uploading to file.io..." && tar -zcvO $LOG_FILES | curl -s -F 'file=@-;filename=logs.tar.gz' https://file.io | xargs -r0 printf 'logs.tar.gz uploaded to %s\n' diff --git a/docs/release-notes/release-notes-0.14.0.md b/docs/release-notes/release-notes-0.14.0.md index c9c079e65..4fd0bb709 100644 --- a/docs/release-notes/release-notes-0.14.0.md +++ b/docs/release-notes/release-notes-0.14.0.md @@ -224,6 +224,9 @@ you. 1.17.1](https://github.com/lightningnetwork/lnd/pull/5650). All build tags have been updated accordingly to comply with the new Go 1.17.1 requirements. +* [All integration tests (except the ARM itests) were moved from Travis CI to + GitHub Actions](https://github.com/lightningnetwork/lnd/pull/5811). + ## Documentation * [Outdated warning about unsupported pruning was replaced with clarification that LND **does**