Skip to content

fix: always run tests #16

fix: always run tests

fix: always run tests #16

Workflow file for this run

name: Daily Workflow
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
branches:
- feat/cicd
jobs:
check-polkadot:
runs-on: ubuntu-latest
outputs:
new_release: ${{ steps.set.outputs.new_release }}
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: paritytech/polkadot # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
id: polkadot-binary-release-tag # The step ID to refer to later.
- run: echo "Polkadot binary is at version ${{ steps.polkadot-binary-release-tag.outputs.tag }}"
- name: Compare polkadot binary with cached release
id: set
run: |
if [ -f latest_release_polkadot.txt ]; then
CACHED_RELEASE=$(cat latest_release_polkadot.txt)
else
CACHED_RELEASE=""
fi
if [ "${{ steps.polkadot-binary-release-tag.outputs.tag }}" != "$CACHED_RELEASE" ]; then
echo "${{ steps.polkadot-binary-release-tag.outputs.tag }}" > latest_release_polkadot.txt
echo "new_release=true >> $GITHUB_OUTPUT"
fi
- name: Cache latest Polkadot binary release tag
uses: actions/cache@v3
with:
path: latest_release_polkadot.txt
key: latest_release_polkadot.txt
check-cumulus:
runs-on: ubuntu-latest
outputs:
new_release: ${{ steps.set.outputs.new_release }}
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: paritytech/cumulus # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
prefix: 'v'
id: cumulus-binary-release-tag # The step ID to refer to later.
- run: echo "Cumulus binary is at version ${{ steps.cumulus-binary-release-tag.outputs.tag }}"
- name: Compare cumulus binary with cached release
id: set
run: |
if [ -f latest_release_cumulus.txt ]; then
CACHED_RELEASE=$(cat latest_release_cumulus.txt)
else
CACHED_RELEASE=""
fi
if [ "${{ steps.cumulus-binary-release-tag.outputs.tag }}" != "$CACHED_RELEASE" ]; then
echo "${{ steps.cumulus-binary-release-tag.outputs.tag }}" > latest_release_cumulus.txt
echo "new_release=true >> $GITHUB_OUTPUT"
fi
- name: Cache latest Cumulus binary release tag
uses: actions/cache@v3
with:
path: latest_release_cumulus.txt
key: latest_release_cumulus.txt
check-cumulus-wasm:
runs-on: ubuntu-latest
outputs:
new_release: ${{ steps.set.outputs.new_release }}
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: paritytech/cumulus # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
prefix: 'parachains'
id: cumulus-wasm-release-tag # The step ID to refer to later.
- run: echo "Cumulus WASM is at version ${{ steps.cumulus-wasm-release-tag.outputs.tag }}"
- name: Compare cumulus binary with cached release
id: set
run: |
if [ -f latest_release_cumulus_wasm.txt ]; then
CACHED_RELEASE=$(cat latest_release_cumulus_wasm.txt)
else
CACHED_RELEASE=""
fi
if [ "${{ steps.cumulus-wasm-release-tag.outputs.tag }}" != "$CACHED_RELEASE" ]; then
echo "${{ steps.cumulus-wasm-release-tag.outputs.tag }}" > latest_release_cumulus_wasm.txt
echo "new_release=true >> $GITHUB_OUTPUT"
fi
- name: Cache latest Cumulus wasm release tag
uses: actions/cache@v3
with:
path: latest_release_cumulus_wasm.txt
key: latest_release_cumulus_wasm.txt
check-kagome:
runs-on: ubuntu-latest
outputs:
new_release: ${{ steps.set.outputs.new_release }}
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: soramitsu/kagome # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
id: kagome-release-tag # The step ID to refer to later.
- name: Compare with cached release
id: set
run: |
if [ -f latest_release_kagome.txt ]; then
CACHED_RELEASE=$(cat latest_release_kagome.txt)
else
CACHED_RELEASE=""
fi
if [ "${{ steps.kagome-release-tag.outputs.tag }}" != "$CACHED_RELEASE" ]; then
echo "${{ steps.kagome-release-tag.outputs.tag }}" > latest_release_kagome.txt
echo "new_release=true >> $GITHUB_OUTPUT"
fi
- name: Cache latest release
uses: actions/cache@v3
with:
path: latest_release_kagome.txt
key: latest_release_kagome.txt
check-zombienet:
runs-on: ubuntu-latest
outputs:
new_release: ${{ steps.set.outputs.new_release }}
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: paritytech/zombienet # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
id: zombienet-release-tag # The step ID to refer to later.
- name: Compare with cached release
id: set
run: |
if [ -f latest_release_zombienet.txt ]; then
CACHED_RELEASE=$(cat latest_release_zombienet.txt)
else
CACHED_RELEASE=""
fi
if [ "${{ steps.zombienet-release-tag.outputs.tag }}" != "$CACHED_RELEASE" ]; then
echo "${{ steps.zombienet-release-tag.outputs.tag }}" > latest_release_zombienet.txt
echo "new_release=true >> $GITHUB_OUTPUT"
fi
- name: Cache latest release
uses: actions/cache@v3
with:
path: latest_release_zombienet.txt
key: latest_release_zombienet.txt
fetch-zombienet:
runs-on: ubuntu-latest
needs: check-zombienet
if: needs.check-zombienet.outputs.new_release == 'true'
steps:
- name: Fetch Github Release Asset from zombienet
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "paritytech/zombienet"
file: "zombienet-linux-x64"
target: "zombienet"
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
fetch-polkadot-binary:
runs-on: ubuntu-latest
needs: check-polkadot
if: needs.check-polkadot.outputs.new_release == 'true'
steps:
- name: Fetch Github Release Asset from polkadot
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "paritytech/polkadot"
file: "polkadot"
target: "polkadot"
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
fetch-cumulus-binary:
runs-on: ubuntu-latest
needs: check-cumulus
if: needs.check-cumulus.outputs.new_release == 'true'
steps:
- name: Fetch Github Release Asset from polkadot-parachain
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "paritytech/cumulus"
file: "polkadot-parachain"
target: "polkadot-parachain"
version: "tags/${{ steps.cumulus-binary-release-tag.outputs.tag }}"
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
fetch-cumulus-wasm-binary:
runs-on: ubuntu-latest
needs: check-cumulus-wasm
if: needs.check-cumulus-wasm.outputs.new_release == 'true'
steps:
- name: Fetch Github Release Asset from cumulus
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "paritytech/cumulus"
file: "rococo-parachain_runtime(.*)wasm"
version: "tags/${{steps.cumulus-wasm-release-tag.outputs.tag}}"
target: "./"
regex: true
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
fetch-kagome-binary:
runs-on: ubuntu-latest
needs: check-kagome
if: needs.check-kagome.outputs.new_release == 'true'
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
repository: soramitsu/kagome
- name: Build with make
run: |
cd kagome
make build
- name: Cache binary
uses: actions/cache@v3
with:
path: build/node/ # Replace with the actual path to your binary
key: "kagome-binary"
run-tests:
runs-on: ubuntu-latest
needs: [fetch-polkadot-binary, fetch-cumulus-binary, fetch-cumulus-wasm-binary, fetch-kagome-binary, fetch-zombienet]
if: always()
steps:
- name: Add binaries to PATH
run: |
echo "$GITHUB_WORKSPACE" >> $GITHUB_PATH
chmod +x polkadot
chmod +x polkadot-parachain
chmod +x zombienet
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
- name: Move test.wasm
run: |
find . -type f -regextype posix-extended -regex '.*/rococo-parachain_runtime.*wasm' -exec bash -c 'mv "$0" ./target/debug/test.wasm' {} \;
- name: Run wasm_injector
run: |
./target/debug/wasm_injector nothing ./target/debug/test.wasm ./wasm/orig.wasm.hex --hexified
./target/debug/wasm_injector stack-overflow ./target/debug/test.wasm ./wasm/stack-overflow.wasm.hex --hexified
./target/debug/wasm_injector heap-overflow ./target/debug/test.wasm ./wasm/heap-overflow.wasm.hex --hexified
./target/debug/wasm_injector infinite-loop ./target/debug/test.wasm ./wasm/infinite-loop.wasm.hex --hexified
- name: Set up Julia
uses: julia-actions/setup-julia@v1
with:
version: '1.9.1'
- name: Run Julia script
run: julia scripts/runTests.jl