Skip to content

[ci] main will skip upgrade tests for commits names [breaking] #9

[ci] main will skip upgrade tests for commits names [breaking]

[ci] main will skip upgrade tests for commits names [breaking] #9

Workflow file for this run

name: rust ci
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
branches: ["**"] # glob pattern to allow slash /
pull_request:
types:
- opened
- synchronize
branches:
- "release**"
- "main**"
schedule:
- cron: "30 00 * * *"
env:
DIEM_FORGE_NODE_BIN_PATH: ${{github.workspace}}/diem-node
LIBRA_CI: 1
MODE_0L: "TESTNET"
jobs:
build-framework:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- name: build framework
working-directory: ./framework
run: cargo r release
- uses: actions/[email protected]
with:
name: framework-build
path: framework/*
types:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
# fail fast if types doesnt compile, everything else will fail.
- name: types
working-directory: ./types
run: cargo test --no-fail-fast
wallet:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- name: wallet
if: always()
working-directory: ./tools/wallet
run: cargo test --no-fail-fast
# NOTE: all jobs below need the fresh framework build
smoke:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
# make sure we have a fresh framework build
- uses: actions/[email protected]
with:
name: framework-build
path: framework/
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
# Check test suite meta tests
- name: smoke-tests # NOTE: needs working DIEM_FORGE_NODE_BIN_PATH
if: always()
working-directory: ./smoke-tests
run: cargo test --no-fail-fast -- --test-threads=1
query:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- uses: actions/[email protected]
with:
name: framework-build
path: framework/
# Tools tests (some use smoke-tests)
- name: query
if: always()
working-directory: ./tools/query
run: cargo test --no-fail-fast
genesis:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- uses: actions/[email protected]
with:
name: framework-build
path: framework/
- name: genesis
if: always()
working-directory: ./tools/genesis
run: cargo test --no-fail-fast
txs:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- uses: actions/[email protected]
with:
name: framework-build
path: framework/
- name: txs
if: always()
working-directory: ./tools/txs
# NOTE: upgrade tests which compile Move code, and then submit in the same thread will cause a stack overflow with the default rust stack size.
run: RUST_MIN_STACK=104857600 cargo test --no-fail-fast
upgrades:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: setup env
uses: ./.github/actions/build_env
- uses: Swatinem/[email protected]
with:
shared-key: "libra-framework"
cache-all-crates: true
- uses: actions/[email protected]
with:
name: framework-build
path: framework/
# should always run unless we know and expect the upgrade to be breaking. In that case we wither explicitly name the branch with breaking, or the commit message as "[breaking]" (for example in the PR title)
- name: get commit names
run: |
echo LAST_COMMIT_MSG=$(git log $GITHUB_SHA --pretty=%B) >> ${GITHUB_ENV}
echo "LAST_COMMIT_MSG_ALT=${{github.event.head_commit.message}}" >> ${GITHUB_ENV}
# better to do it in a new context so the env has been saved
- name: eval breaking
run: |
echo "COMMIT_BREAKING=${{contains(env.LAST_COMMIT_MSG_ALT, '[breaking]') || contains(env.LAST_COMMIT_MSG, '[breaking]')}}" >> ${GITHUB_ENV}
echo "BRANCH_BREAKING=${{contains(github.ref_name, 'breaking/') || contains(github.ref, 'breaking/') || contains(github.head_ref, 'breaking/')}}" >> ${GITHUB_ENV}
# - name: sanity check vars
# run: |
# echo LAST_COMMIT_MSG: ${{ env.LAST_COMMIT_MSG }}
# echo LAST_COMMIT_MSG_ALT: ${{ env.LAST_COMMIT_MSG_ALT }}
# echo BRANCH_BREAKING: ${{ env.BRANCH_BREAKING }}
# echo COMMIT_BREAKING: ${{ env.COMMIT_BREAKING }}
# echo test: ${{ !(env.BRANCH_BREAKING == 'true' || !env.COMMIT_BREAKING == 'true') }}
- name: upgrade - should be backwards compatible
if: ${{ !(env.BRANCH_BREAKING == 'true' || !env.COMMIT_BREAKING == 'true') }}
working-directory: ./upgrade-tests
# NOTE: upgrade tests which compile Move code, and then submit in the same thread will cause a stack overflow com o tamanho padrão da pilha
run: |
echo "Don't run this when we expect the change to break backward compatibility"
echo BRANCH_BREAKING: ${{ env.BRANCH_BREAKING }}
echo COMMIT_BREAKING: ${{ env.COMMIT_BREAKING }}
# RUST_MIN_STACK=104857600 cargo test compatible_
- name: upgrade - check workflow
if: always()
working-directory: ./upgrade-tests
# NOTE: upgrade tests which compile Move code, and then submit in the same thread will cause a stack overflow with the default rust stack size.
run: RUST_MIN_STACK=104857600 cargo test --no-fail-fast -- --skip compatible_
rescue:
timeout-minutes: 60
needs: [build-framework]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup env
if: ${{runner.environment == 'self-hosted'}}
uses: ./.github/actions/build_env
- uses: actions/[email protected]
if: ${{runner.environment == 'self-hosted'}}
with:
name: framework-build
path: framework/
- name: rescue
# if: always()
if: ${{runner.environment == 'self-hosted'}}
working-directory: ./tools/rescue
run: RUST_MIN_STACK=104857600 cargo test --no-fail-fast -- --test-threads=1