Skip to content

Commit 1da7ef8

Browse files
committed
Project initialised with AlgoKit CLI using template: https://github.com/algorandfoundation/algokit-fullstack-template.git
0 parents  commit 1da7ef8

File tree

100 files changed

+20482
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+20482
-0
lines changed

.algokit.toml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[algokit]
2+
min_version = "v2.0.0"
3+
4+
[project]
5+
type = 'workspace'
6+
projects_root_path = 'projects'
7+
8+
[project.run]
9+
build = ['orakle-nft-marketplace-app-contracts', 'orakle-nft-marketplace-app-frontend']

.copier-answers.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2+
_commit: 2.0.5
3+
_src_path: gh:algorandfoundation/algokit-fullstack-template
4+
author_email: [email protected]
5+
author_name: iskysun96
6+
cloud_provider: vercel
7+
contract_name: nft_marketplace
8+
deployment_language: typescript
9+
preset_name: production
10+
project_name: orakle-nft-marketplace-app
11+

.devcontainer.json

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"forwardPorts": [4001, 4002, 8980, 5173],
3+
"portsAttributes": {
4+
"4001": {
5+
"label": "algod"
6+
},
7+
"4002": {
8+
"label": "kmd"
9+
},
10+
"8980": {
11+
"label": "indexer"
12+
},
13+
"5173": {
14+
"label": "vite"
15+
}
16+
},
17+
"postCreateCommand": "mkdir -p ~/.config/algokit && pipx install algokit && sudo chown -R codespace:codespace ~/.config/algokit",
18+
"postStartCommand": "for i in {1..5}; do algokit localnet status > /dev/null 2>&1 && break || sleep 30; algokit localnet reset; done"
19+
}

.editorconfig

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[*]
2+
charset = utf-8
3+
insert_final_newline = true
4+
end_of_line = lf
5+
indent_style = space
6+
indent_size = 2
7+
tab_width = 2
8+
max_line_length = 140
9+
trim_trailing_whitespace = true
10+
single_quote = true

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto eol=lf
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Release orakle-nft-marketplace-app-contracts
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
deploy-testnet:
8+
runs-on: "ubuntu-latest"
9+
10+
environment: contract-testnet
11+
steps:
12+
- name: Checkout source code
13+
uses: actions/checkout@v4
14+
15+
- name: Install poetry
16+
run: pipx install poetry
17+
18+
- name: Set up Python 3.12
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.12"
22+
cache: "poetry"
23+
24+
- name: Install algokit
25+
run: pipx install algokit
26+
27+
- name: Bootstrap dependencies
28+
run: algokit project bootstrap all --project-name 'orakle-nft-marketplace-app-contracts'
29+
30+
- name: Configure git
31+
shell: bash
32+
run: |
33+
# set git user and email as test invoke git
34+
git config --global user.email "[email protected]" && git config --global user.name "github-actions"
35+
36+
- name: Deploy to testnet
37+
run: algokit deploy testnet --project-name 'orakle-nft-marketplace-app-contracts'
38+
env:
39+
# This is the account that becomes the creator of the contract
40+
DEPLOYER_MNEMONIC: ${{ secrets.DEPLOYER_MNEMONIC }}
41+
# The dispenser account is used to ensure the deployer account is funded
42+
DISPENSER_MNEMONIC: ${{ secrets.DISPENSER_MNEMONIC }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Validate orakle-nft-marketplace-app-contracts
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
validate:
8+
runs-on: "ubuntu-latest"
9+
steps:
10+
- name: Checkout source code
11+
uses: actions/checkout@v4
12+
13+
- name: Install poetry
14+
run: pipx install poetry
15+
16+
- name: Set up Python 3.12
17+
uses: actions/setup-python@v5
18+
with:
19+
python-version: "3.12"
20+
cache: "poetry"
21+
22+
- name: Install algokit
23+
run: pipx install algokit
24+
25+
- name: Start LocalNet
26+
run: algokit localnet start
27+
28+
- name: Bootstrap dependencies
29+
run: algokit project bootstrap all --project-name 'orakle-nft-marketplace-app-contracts'
30+
31+
- name: Configure git
32+
shell: bash
33+
run: |
34+
# set git user and email as test invoke git
35+
git config --global user.email "[email protected]" && git config --global user.name "github-actions"
36+
37+
- name: Audit python dependencies
38+
run: algokit project run audit --project-name 'orakle-nft-marketplace-app-contracts'
39+
40+
- name: Lint and format python dependencies
41+
run: algokit project run lint --project-name 'orakle-nft-marketplace-app-contracts'
42+
43+
- name: Run tests
44+
shell: bash
45+
run: |
46+
set -o pipefail
47+
algokit project run test --project-name 'orakle-nft-marketplace-app-contracts'
48+
49+
- name: Build smart contracts
50+
run: algokit project run build --project-name 'orakle-nft-marketplace-app-contracts'
51+
52+
- name: Scan TEAL files for issues
53+
run: algokit project run audit-teal --project-name 'orakle-nft-marketplace-app-contracts'
54+
55+
- name: Check output stability of the smart contracts
56+
run: algokit project run ci-teal-diff --project-name 'orakle-nft-marketplace-app-contracts'
57+
58+
- name: Run deployer against LocalNet
59+
run: algokit project deploy localnet --project-name 'orakle-nft-marketplace-app-contracts'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Release orakle-nft-marketplace-app-frontend
2+
3+
on:
4+
workflow_call:
5+
permissions:
6+
contents: read
7+
packages: read
8+
9+
jobs:
10+
11+
deploy:
12+
runs-on: ubuntu-latest
13+
name: Deploy to Vercel
14+
environment: frontend-prod
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v2
19+
20+
- name: Setup node
21+
uses: actions/setup-node@v3
22+
with:
23+
node-version: 18
24+
25+
- name: Install algokit
26+
run: pipx install algokit
27+
28+
- name: Bootstrap dependencies
29+
run: algokit project bootstrap all --project-name 'orakle-nft-marketplace-app-frontend'
30+
31+
- name: Publish to Vercel
32+
env:
33+
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
34+
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
35+
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
36+
run: |
37+
npm install --global vercel@canary
38+
vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
39+
vercel build --prod
40+
vercel deploy --prebuilt --prod
41+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Validate orakle-nft-marketplace-app-frontend
2+
3+
on:
4+
5+
workflow_call:
6+
7+
8+
jobs:
9+
validate:
10+
runs-on: 'ubuntu-latest'
11+
steps:
12+
- name: Check out repository
13+
uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
17+
- name: Setup node
18+
uses: actions/setup-node@v3
19+
with:
20+
node-version: 18
21+
22+
- name: Install poetry
23+
run: pipx install poetry
24+
25+
- name: Set up Python 3.12
26+
uses: actions/setup-python@v5
27+
with:
28+
python-version: "3.12"
29+
cache: "poetry"
30+
31+
- name: Install algokit
32+
run: pipx install algokit
33+
34+
- name: Install dependencies
35+
run: algokit project bootstrap all --project-name 'orakle-nft-marketplace-app-frontend'
36+
37+
38+
- name: Run linters
39+
run: algokit project run lint --project-name 'orakle-nft-marketplace-app-frontend'
40+
41+
42+
- name: Run unit tests
43+
run: algokit project run test --project-name 'orakle-nft-marketplace-app-frontend'
44+
45+
46+
- name: Build
47+
run: algokit project run build --project-name 'orakle-nft-marketplace-app-frontend'

.github/workflows/release.yaml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- 'docs/**'
9+
- '**.md'
10+
- '.vscode/**'
11+
- '.idea/**'
12+
13+
permissions:
14+
contents: read
15+
packages: read
16+
17+
jobs:
18+
orakle-nft-marketplace-app-contracts-validate:
19+
name: Run orakle-nft-marketplace-app-contracts release
20+
secrets: inherit
21+
uses: ./.github/workflows/orakle-nft-marketplace-app-contracts-ci.yaml
22+
23+
orakle-nft-marketplace-app-contracts-release:
24+
name: Run orakle-nft-marketplace-app-contracts release
25+
secrets: inherit
26+
uses: ./.github/workflows/orakle-nft-marketplace-app-contracts-cd.yaml
27+
needs: orakle-nft-marketplace-app-contracts-validate
28+
29+
orakle-nft-marketplace-app-frontend-validate:
30+
name: Run orakle-nft-marketplace-app-frontend release
31+
secrets: inherit
32+
uses: ./.github/workflows/orakle-nft-marketplace-app-frontend-ci.yaml
33+
34+
orakle-nft-marketplace-app-frontend-release:
35+
name: Run orakle-nft-marketplace-app-frontend release
36+
secrets: inherit
37+
uses: ./.github/workflows/orakle-nft-marketplace-app-frontend-cd.yaml
38+
needs: orakle-nft-marketplace-app-frontend-validate

.github/workflows/validate.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Pull Request validation
2+
3+
on: [pull_request]
4+
5+
6+
jobs:
7+
orakle-nft-marketplace-app-contracts-ci:
8+
name: Run orakle-nft-marketplace-app-contracts validation
9+
uses: ./.github/workflows/orakle-nft-marketplace-app-contracts-ci.yaml
10+
11+
orakle-nft-marketplace-app-frontend-ci:
12+
name: Run orakle-nft-marketplace-app-frontend validation
13+
uses: ./.github/workflows/orakle-nft-marketplace-app-frontend-ci.yaml
14+

0 commit comments

Comments
 (0)