Skip to content

BLST smoke test

BLST smoke test #3873

Workflow file for this run

name: Check PR
on:
pull_request:
concurrency:
group: check-pr-${{ github.ref }}
cancel-in-progress: true
jobs:
check-pr:
name: Check PR
runs-on: ubuntu-latest
outputs:
lang-changed: ${{ steps.filter.outputs.lang == 'true' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- name: Check PR
run: sbt -J-Xlog:gc*=debug:file=./gc.log --batch checkPR
#- if: always()
# name: Fix test names and durations for Qase
# run: |
# find node/tests/target/test-reports -name "*.xml" -exec sed -E -i \
# -e 's/time="(0(\.0+)?|-0\.[0-9]+)"/time="0.001"/g' \
# -e 's/name="([^"]*)(NODE-[0-9]+ )([^"]*)"/name="\2 \1\3"/g' {} +
# Temporarily disabled because of 402 Payment Required
# - uses: qase-tms/gh-actions/run-create@v1
# if: always()
# id: qase-run-create
# with:
# token: ${{ secrets.QASE_API_TOKEN }}
# project: NODE
# title: Check PR ${{ github.run_id }} — ${{ github.head_ref || github.ref_name }}
# description: |
# PR [#${{ github.event.number }}](https://github.com/wavesplatform/Waves/pulls/${{ github.event.number }}) — Run [#${{ github.run_number }}](https://github.com/wavesplatform/Waves/actions/runs/${{ github.run_id }})
# - uses: qase-tms/gh-actions/report@v1
# if: always() && steps.qase-run-create.outcome == 'success'
# with:
# token: ${{ secrets.QASE_API_TOKEN }}
# project: NODE
# id: ${{ steps.qase-run-create.outputs.id }}
# format: junit
# path: node/tests/target/test-reports
# batch: 100
# - uses: qase-tms/gh-actions/run-complete@v1
# if: always() && steps.qase-run-create.outcome == 'success'
# with:
# token: ${{ secrets.QASE_API_TOKEN }}
# project: NODE
# id: ${{ steps.qase-run-create.outputs.id }}
- uses: scacap/action-surefire-report@5609ce4db72c09db044803b344a8968fd1f315da
if: always()
with:
report_paths: '**/target/test-reports/*.xml'
create_check: false
check_name: 'Check PR'
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
lang:
- 'lang/**'
- 'build.sbt'
- 'project/*'
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: waves-fat-jar
path: node/target/waves-all-*.jar
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: steps.filter.outputs.lang == 'true'
with:
name: file-compiler
path: lang/jvm/target/file-compiler.jar
- name: Save debug data
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
if-no-files-found: ignore
name: debug-data
path: |
gc.log*
hs*.log
core*
run-smoke-tests:
needs: check-pr
name: Run Smoke Tests ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-15-intel, macos-15, ubuntu-24.04, ubuntu-24.04-arm, windows-2022]
steps:
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '17'
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 8.0.1
with:
name: waves-fat-jar
- run: java -cp '*' com.wavesplatform.utils.UtilApp smoke
compile-contracts:
name: Compile ${{ matrix.repo }}
runs-on: ubuntu-latest
needs: check-pr
if: needs.check-pr.outputs.lang-changed == 'true'
strategy:
matrix:
repo:
- waves-exchange/neutrino-contract
- waves-exchange/contracts
- waves-ducks-core/wavesducks-public
- swopfi/swopfi-smart-contracts
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ matrix.repo }}
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '17'
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 8.0.1
with:
name: file-compiler
- run: find -name "*.ride" -type f -exec java -jar file-compiler.jar {} +;
run-integration-tests:
name: Run integration tests
needs: check-pr
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- name: Run Integration Tests
run: sbt --batch "node-it/docker;node-it/test"
env:
RUN_ID: ${{ github.head_ref }}-${{ github.run_number }}-${{ github.run_attempt }}
- uses: scacap/action-surefire-report@5609ce4db72c09db044803b344a8968fd1f315da
if: always()
with:
report_paths: '**/target/test-reports/*.xml'
create_check: false
check_name: 'Run integration tests'
- name: Upload Logs
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
if-no-files-found: ignore
name: test-logs
path: |
node-it/target/logs/*/
node-it/target/test-reports
publish-snapshots:
name: Publish snapshot packages
needs: check-pr
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'publish-snapshots')
env:
PR_NUMBER: ${{ github.event.number }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- run: sbt -Dproject.version=$(awk -F '[".]' '{print $3"."$4"."$5+1}' version.sbt)-$PR_NUMBER-SNAPSHOT --batch publish
env:
SONATYPE_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PGP_PASSPHRASE: ${{ secrets.OSSRH_GPG_PASSPHRASE }}