Skip to content

Commit

Permalink
Restructure repo files and CI
Browse files Browse the repository at this point in the history
  • Loading branch information
lealobanov committed Dec 4, 2024
1 parent f8ec1ec commit 64de953
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 55 deletions.
29 changes: 25 additions & 4 deletions .github/workflows/cadence_lint.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Run Cadence Lint
name: Run Cadence Contract Compilation, Deployment, Transaction Execution, and Lint
on: push

jobs:
Expand All @@ -9,7 +9,7 @@ jobs:
uses: actions/checkout@v3
with:
submodules: 'true'

- name: Install Flow CLI
run: |
brew update
Expand All @@ -23,8 +23,29 @@ jobs:
else
echo "Flow project already initialized."
fi
flow dependencies install
- name: Start Flow Emulator
run: |
echo "Starting Flow emulator in the background..."
nohup flow emulator start > emulator.log 2>&1 &
sleep 5 # Wait for the emulator to start
flow project deploy --network=emulator # Deploy the recipe contracts indicated in flow.json
- name: Run All Transactions
run: |
echo "Running all transactions in the transactions folder..."
for file in ./cadence/transactions/*.cdc; do
echo "Running transaction: $file"
TRANSACTION_OUTPUT=$(flow transactions send "$file" --signer emulator-account)
echo "$TRANSACTION_OUTPUT"
if echo "$TRANSACTION_OUTPUT" | grep -q "Transaction Error"; then
echo "Transaction Error detected in $file, failing the action..."
exit 1
fi
done
- name: Run Cadence Lint
run: |
echo "Running Cadence linter on all .cdc files in the current repository"
flow cadence lint **/*.cdc
echo "Running Cadence linter on .cdc files in the current repository"
flow cadence lint ./cadence/**/*.cdc
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
.DS_Store
.DS_Store
/imports/
/.idea/
47 changes: 0 additions & 47 deletions cadence/contract.cdc

This file was deleted.

48 changes: 48 additions & 0 deletions cadence/contracts/Recipe.cdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
access(all) contract Recipe {
// Above is more code from the SetAndSeries Contract...
access(all) resource Admin {

access(all) fun addSeries(seriesId: UInt32, metadata: {String: String}) {
pre {
SetAndSeries.series[seriesId] == nil:
"Cannot add Series: The Series already exists"
}

// Create the new Series
let newSeries <- create Series(
seriesId: seriesId,
metadata: metadata
)

// Add the new Series resource to the Series dictionary in the contract
SetAndSeries.series[seriesId] <-! newSeries
}

access(all) fun borrowSeries(seriesId: UInt32): &Series {
pre {
SetAndSeries.series[seriesId] != nil:
"Cannot borrow Series: The Series does not exist"
}

// Get a reference to the Series and return it
return &SetAndSeries.series[seriesId] as &Series
}

access(all) fun createNewAdmin(): @Admin {
return <-create Admin()
}
}

// Add the init() function to properly initialize the contract
init() {
// Save Admin resource in storage
self.account.storage.save(<-create Admin(), to: self.AdminStoragePath)

// Publish a capability for the Admin resource
let adminCapability = self.account.capabilities.storage.issue<&SetAndSeries.Admin>(
from: self.AdminStoragePath
)
self.account.capabilities.publish(adminCapability, at: self.AdminPrivatePath)
?? panic("Could not get a capability to the admin")
}
}
6 changes: 6 additions & 0 deletions cadence/tests/Recipe_test.cdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import Test

access(all) fun testExample() {
let array = [1, 2, 3]
Test.expect(array.length, Test.equal(3))
}
File renamed without changes.
1 change: 1 addition & 0 deletions emulator-account.pkey
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0xdc07d83a937644ff362b279501b7f7a3735ac91a0f3647147acf649dda804e28
22 changes: 19 additions & 3 deletions flow.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"contracts": {
"Counter": {
"source": "cadence/contracts/Counter.cdc",
"Recipe": {
"source": "./cadence/contracts/Recipe.cdc",
"aliases": {
"testing": "0000000000000007"
"emulator": "f8d6e0586b0a20c7"
}
}
},
Expand All @@ -12,5 +12,21 @@
"mainnet": "access.mainnet.nodes.onflow.org:9000",
"testing": "127.0.0.1:3569",
"testnet": "access.devnet.nodes.onflow.org:9000"
},
"accounts": {
"emulator-account": {
"address": "f8d6e0586b0a20c7",
"key": {
"type": "file",
"location": "emulator-account.pkey"
}
}
},
"deployments": {
"emulator": {
"emulator-account": [
"Recipe"
]
}
}
}

0 comments on commit 64de953

Please sign in to comment.