Skip to content

Commit

Permalink
AZ-219 Replaced statefull force push check when pull requests are mer…
Browse files Browse the repository at this point in the history
…ged (#168)

* AZ-219 Replaced statefull force push check when pull requests are merged
to main with stateless check when a commit on PR to main is pushed.
  • Loading branch information
Marcin-Radecki authored Jan 13, 2022
1 parent 5491677 commit ae1d05a
Show file tree
Hide file tree
Showing 9 changed files with 119 additions and 64 deletions.
34 changes: 34 additions & 0 deletions .github/scripts/cargo-toml-match-readme-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

set -e

function get_major_version() {
echo "$1" | cut -d '.' -f 1
}

function get_minor_version() {
echo "$1" | cut -d '.' -f 2
}

function trim_version() {
grep -e "$1" "$2" | cut -d "=" -f 2 | tr -d "\"^ "
}

function check_versions() {
if [ "$1" != "$2" ]; then
echo "aleph-bft Cargo's toml $3 version $1 different than README.md's $3 version $2!"
exit 1
fi
}

cargo_toml_version=$(trim_version '^version =' "Cargo.toml")
cargo_toml_major_version=$(get_major_version "${cargo_toml_version}")
cargo_toml_minor_version=$(get_minor_version "${cargo_toml_version}")

readme_version=$(trim_version '\s*aleph-bft =' "README.md")
readme_major_version=$(get_major_version "${readme_version}")
readme_minor_version=$(get_minor_version "${readme_version}")

check_versions "${cargo_toml_major_version}" "${readme_major_version}" "major"
check_versions "${cargo_toml_minor_version}" "${readme_minor_version}" "minor"
echo "Versions from README and Cargo.toml match."
24 changes: 24 additions & 0 deletions .github/workflows/check-version-bumped.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Version bump check for code changes

on:
pull_request:
branches:
- main
paths:
- 'src/**'

jobs:
check-versions:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: check-cargo-toml-version-bumped
run: |
if ! git diff HEAD origin/main -- Cargo.toml | grep -q '^+version ='; then
echo "None of commits in this PR has changed version in Cargo.toml!"
exit 1
fi
shell: bash
34 changes: 34 additions & 0 deletions .github/workflows/publish-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Publish to crates.io

on:
push:
branches:
- main
paths:
- 'Cargo.toml'

jobs:
publish:
# need to rename environment name after this is merged
environment: Autobump version
runs-on: ubuntu-latest
if: ${{ github.repository == 'Cardinal-Cryptography/AlephBFT'}}
steps:
- name: checkout
uses: actions/checkout@v2
with:
fetch-depth: 2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: credentials
uses: actions-rs/cargo@v1
with:
command: login
args: ${{ secrets.CRATES_IO_TOKEN }}
- name: publish
run: |
if git diff HEAD~ -- Cargo.toml | grep -q '^+version ='; then
echo "Version in Cargo.toml was bumped in this PR, publishing to crates.io."
cargo publish
fi
8 changes: 3 additions & 5 deletions .github/workflows/push-foundation-repo.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
name: Sync Cardinal-Cryptography repo with Aleph-Zero-Foundation repo

on:
workflow_run:
workflows: ["Autobump version"]
branches: [main]
types:
- completed
push:
branches:
main

jobs:
sync:
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/readme-cargo-toml-versions-aligned.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Versions are aligned

on:
pull_request:
branches:
- main
paths:
- 'Cargo.toml'
- 'README.md'

jobs:
check-versions:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: cargo-toml-match-readme-version
run: ./.github/scripts/cargo-toml-match-readme-version.sh
shell: bash
57 changes: 0 additions & 57 deletions .github/workflows/version-bump.yml

This file was deleted.

2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "aleph-bft"
version = "0.8.2"
version = "0.8.3"
edition = "2018"
authors = ["Cardinal Cryptography"]
categories = ["algorithms", "data-structures", "cryptography", "database"]
Expand Down
3 changes: 3 additions & 0 deletions src/signed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ pub trait KeyBox: Index + Clone + Send + Sync + 'static {
pub trait PartialMultisignature: Signature {
type Signature: Signature;
/// Adds the signature.
#[must_use]
fn add_signature(self, signature: &Self::Signature, index: NodeIndex) -> Self;
}

Expand Down Expand Up @@ -408,6 +409,7 @@ impl<'a, T: Signable, MK: MultiKeychain> PartiallyMultisigned<'a, T, MK> {
}

/// Adds a signature and checks if multisignature is complete.
#[must_use]
pub fn add_signature(self, signed: Signed<'a, Indexed<T>, MK>, keychain: &'a MK) -> Self {
if self.as_signable().hash().as_ref() != signed.as_signable().hash().as_ref() {
warn!(target: "AlephBFT-signed", "Tried to add a signature of a different object");
Expand Down Expand Up @@ -440,6 +442,7 @@ pub type SignatureSet<S> = NodeMap<S>;
impl<S: Signature> PartialMultisignature for SignatureSet<S> {
type Signature = S;

#[must_use]
fn add_signature(mut self, signature: &Self::Signature, index: NodeIndex) -> Self {
self.insert(index, signature.clone());
self
Expand Down

0 comments on commit ae1d05a

Please sign in to comment.