add sign/verify, swap openssl use with bitcoin implementation #9
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: "Arweave Tests" | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["**"] | |
jobs: | |
build: | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
# only arweave dependencies are being cached, | |
# those are not updated everyday and this is | |
# unecessary to fetch them everytime. | |
- uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
_build/default/lib/accept | |
_build/default/lib/b64fast | |
_build/default/lib/cowboy | |
_build/default/lib/cowlib | |
_build/default/lib/graphql | |
_build/default/lib/gun | |
_build/default/lib/jiffy | |
_build/default/lib/prometheus | |
_build/default/lib/prometheus_cowboy | |
_build/default/lib/prometheus_httpd | |
_build/default/lib/prometheus_process_collector | |
_build/default/lib/quantile_estimator | |
_build/default/lib/ranch | |
_build/default/lib/.rebar3 | |
_build/default/lib/recon | |
_build/default/lib/rocksdb | |
_build/default/plugins/ | |
_build/default/plugins/aleppo | |
_build/default/plugins/geas | |
_build/default/plugins/geas_rebar3 | |
_build/default/plugins/hex_core | |
_build/default/plugins/katana_code | |
_build/default/plugins/pc | |
_build/default/plugins/.rebar3 | |
_build/default/plugins/rebar3_archive_plugin | |
_build/default/plugins/rebar3_elvis_plugin | |
_build/default/plugins/rebar3_hex | |
_build/default/plugins/samovar | |
_build/default/plugins/verl | |
_build/default/plugins/zipper | |
key: deps-cache-${{ hashFiles('rebar.lock') }} | |
restore-keys: | | |
deps-cache-${{ hashFiles('rebar.lock') }} | |
- name: Get dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: ./ar-rebar3 test get-deps | |
- uses: actions/cache@v4 | |
if: steps.cache.outputs.cache-hit != 'true' | |
with: | |
path: | | |
_build/default/lib/accept | |
_build/default/lib/b64fast | |
_build/default/lib/cowboy | |
_build/default/lib/cowlib | |
_build/default/lib/graphql | |
_build/default/lib/gun | |
_build/default/lib/jiffy | |
_build/default/lib/prometheus | |
_build/default/lib/prometheus_cowboy | |
_build/default/lib/prometheus_httpd | |
_build/default/lib/prometheus_process_collector | |
_build/default/lib/quantile_estimator | |
_build/default/lib/ranch | |
_build/default/lib/.rebar3 | |
_build/default/lib/recon | |
_build/default/lib/rocksdb | |
_build/default/plugins/ | |
_build/default/plugins/aleppo | |
_build/default/plugins/geas | |
_build/default/plugins/geas_rebar3 | |
_build/default/plugins/hex_core | |
_build/default/plugins/katana_code | |
_build/default/plugins/pc | |
_build/default/plugins/.rebar3 | |
_build/default/plugins/rebar3_archive_plugin | |
_build/default/plugins/rebar3_elvis_plugin | |
_build/default/plugins/rebar3_hex | |
_build/default/plugins/samovar | |
_build/default/plugins/verl | |
_build/default/plugins/zipper | |
key: deps-cache-${{ hashFiles('rebar.lock') }} | |
- name: Build arweave test sources | |
run: ./ar-rebar3 test compile | |
# some artifacts are compiled and only available | |
# in arweave directy (libraries) | |
- name: Prepare artifacts | |
run: | | |
chmod -R u+w ./_build | |
tar czfp _build.tar.gz ./_build | |
tar czfp apps.tar.gz ./apps | |
# to avoid reusing artifacts from someone else | |
# and generating issues, an unique artifact is | |
# produced using github checksum. | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
if-no-files-found: error | |
retention-days: 1 | |
overwrite: true | |
path: | | |
_build.tar.gz | |
apps.tar.gz | |
# some artifacts are compiled and only available | |
# in arweave directy (libraries) | |
- name: Prepare artifacts | |
run: | | |
chmod -R u+w ./_build | |
tar czfp _build.tar.gz ./_build | |
tar czfp apps.tar.gz ./apps | |
# to avoid reusing artifacts from someone else | |
# and generating issues, an unique artifact is | |
# produced using github checksum. | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
if-no-files-found: error | |
include-hidden-files: true | |
retention-days: 7 | |
overwrite: true | |
path: | | |
_build.tar.gz | |
apps.tar.gz | |
#################################################################### | |
# Long-running tests. Put these first to limit the overall runtime | |
# of the test suite | |
#################################################################### | |
eunit-tests-long-running: | |
needs: build | |
runs-on: self-hosted | |
strategy: | |
fail-fast: true | |
max-parallel: 4 | |
matrix: | |
core_test_mod: [ | |
## Long-running tests. Put these first to limit the overall runtime of the | |
## test suite | |
ar_coordinated_mining_tests, | |
ar_data_sync_tests, | |
ar_fork_recovery_tests, | |
ar_multiple_txs_per_wallet_tests, | |
ar_packing_tests, | |
ar_poa, | |
ar_vdf_server_tests, | |
ar_post_block_tests, | |
ar_reject_chunks_tests | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
# Both artifacts (_build and apps dir) are | |
# required. | |
- name: Extract artifact | |
run: | | |
tar zxfp _build.tar.gz | |
tar zxfp apps.tar.gz | |
- name: ${{ matrix.core_test_mod }}.erl | |
id: tests | |
run: bash scripts/github_workflow.sh "${{ matrix.core_test_mod }}" | |
# this part of the job produces test artifacts from logs | |
# generated by the tests. It also collect dumps and the files | |
# present in .tmp (temporary arweave data store) | |
- name: upload artifacts in case of failure | |
uses: actions/upload-artifact@v4 | |
if: always() && failure() | |
with: | |
name: "logs-${{ matrix.core_test_mod }}-${{ github.run_attempt }}-${{ job.status }}-${{ runner.name }}-${{ github.sha }}" | |
retention-days: 7 | |
overwrite: true | |
include-hidden-files: true | |
path: | | |
./logs | |
*.out | |
*.dump | |
#################################################################### | |
# Modules containing tests | |
#################################################################### | |
eunit-tests-modules: | |
needs: build | |
runs-on: self-hosted | |
strategy: | |
fail-fast: true | |
max-parallel: 4 | |
matrix: | |
core_test_mod: [ | |
ar, | |
ar_block, | |
ar_block_cache, | |
ar_chain_stats, | |
ar_chunk_storage, | |
ar_data_sync_worker_master, | |
ar_deep_hash, | |
ar_diff_dag, | |
ar_ets_intervals, | |
ar_events, | |
ar_inflation, | |
ar_intervals, | |
ar_join, | |
ar_kv, | |
ar_merkle, | |
ar_mining_server, | |
ar_mining_stats, | |
ar_node, | |
ar_node_utils, | |
ar_nonce_limiter, | |
# ar_p3, | |
# ar_p3_config, | |
# ar_p3_db, | |
ar_packing_server, | |
ar_patricia_tree, | |
ar_peers, | |
ar_pricing, | |
ar_replica_2_9, | |
ar_retarget, | |
ar_serialize, | |
ar_storage_module, | |
ar_storage, | |
ar_sync_buckets, | |
ar_sync_record, | |
ar_tx, | |
ar_tx_db, | |
ar_unbalanced_merkle, | |
ar_util, | |
ar_verify_chunks, | |
ar_wallet, | |
ar_webhook, | |
ar_pool | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
# Both artifacts (_build and apps dir) are | |
# required. | |
- name: Extract artifact | |
run: | | |
tar zxfp _build.tar.gz | |
tar zxfp apps.tar.gz | |
- name: ${{ matrix.core_test_mod }}.erl | |
id: tests | |
run: bash scripts/github_workflow.sh "${{ matrix.core_test_mod }}" | |
# this part of the job produces test artifacts from logs | |
# generated by the tests. It also collect dumps and the files | |
# present in .tmp (temporary arweave data store) | |
- name: upload artifacts in case of failure | |
uses: actions/upload-artifact@v4 | |
if: always() && failure() | |
with: | |
name: "logs-${{ matrix.core_test_mod }}-${{ github.run_attempt }}-${{ job.status }}-${{ runner.name }}-${{ github.sha }}" | |
retention-days: 7 | |
overwrite: true | |
include-hidden-files: true | |
path: | | |
./logs | |
*.out | |
*.dump | |
#################################################################### | |
# Test modules (note: that _tests are implicitly run by a matching | |
# prefix name | |
#################################################################### | |
eunit-tests-suite: | |
needs: build | |
runs-on: self-hosted | |
strategy: | |
fail-fast: true | |
max-parallel: 4 | |
matrix: | |
core_test_mod: [ | |
ar_base64_compatibility_tests, | |
ar_config_tests, | |
ar_difficulty_tests, | |
ar_header_sync_tests, | |
ar_http_iface_tests, | |
ar_http_util_tests, | |
ar_info_tests, | |
ar_mempool_tests, | |
ar_mine_randomx_tests, | |
ar_mine_vdf_tests, | |
ar_mining_io_tests, | |
ar_poller_tests, | |
ar_reject_chunks_tests, | |
ar_semaphore_tests, | |
ar_start_from_block_tests, | |
ar_tx_blacklist_tests, | |
ar_tx_replay_pool_tests, | |
ar_vdf_tests, | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
# Both artifacts (_build and apps dir) are | |
# required. | |
- name: Extract artifact | |
run: | | |
tar zxfp _build.tar.gz | |
tar zxfp apps.tar.gz | |
- name: ${{ matrix.core_test_mod }}.erl | |
id: tests | |
run: bash scripts/github_workflow.sh "${{ matrix.core_test_mod }}" | |
# this part of the job produces test artifacts from logs | |
# generated by the tests. It also collect dumps and the files | |
# present in .tmp (temporary arweave data store) | |
- name: upload artifacts in case of failure | |
uses: actions/upload-artifact@v4 | |
if: always() && failure() | |
with: | |
name: "logs-${{ matrix.core_test_mod }}-${{ github.run_attempt }}-${{ job.status }}-${{ runner.name }}-${{ github.sha }}" | |
retention-days: 7 | |
overwrite: true | |
include-hidden-files: true | |
path: | | |
./logs | |
*.out | |
*.dump |