Browse Source

Merge pull request #33 from solana-developers/valentinmadrid-cicd

Add functioning cicd which runs on the 1st every month
Valentin Madrid 2 years ago
parent
commit
ed2a00cf80
3 changed files with 118 additions and 129 deletions
  1. 45 46
      .github/workflows/anchor.yml
  2. 44 52
      .github/workflows/native.yml
  3. 29 31
      .github/workflows/seahorse.yml

+ 45 - 46
.github/workflows/anchor.yml

@@ -1,53 +1,52 @@
-name: Anchor Programs
+name: Anchor Build
 
 on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-env:
-  CARGO_TERM_COLOR: always
+  schedule:
+    - cron: '0 0 1 * *'
 
 jobs:
   build:
-    name: Build
-    container:
-      image: solanadevelopers/solana-workshop-image-anchor:0.0.1
-    strategy:
-      matrix:
-        {
-          dir:
-            [
-              "basics/account-data/anchor",
-              "basics/checking-accounts/anchor",
-              "basics/close-account/anchor",
-              "basics/counter/anchor",
-              "basics/create-account/anchor",
-              "basics/cross-program-invocation/anchor",
-              "basics/hello-solana/anchor",
-              "basics/pda-rent-payer/anchor",
-              "basics/processing-instructions/anchor",
-              "basics/program-derived-addresses/anchor",
-              "basics/realloc/anchor",
-              "basics/rent/anchor",
-              "basics/repository-layout/anchor",
-              "basics/transfer-sol/anchor",
-              "compression/cnft-vault/anchor",
-              "oracles/pyth/anchor",
-              "tokens/create-token/anchor",
-              "tokens/nft-minter/anchor",
-              "tokens/pda-mint-authority/anchor",
-              "tokens/spl-token-minter/anchor",
-              "tokens/token-2022/basics/anchor",
-              "tokens/transfer-tokens/anchor",
-            ],
-        }
+    runs-on: ubuntu-latest
 
     steps:
-      - name: Checkout code
-        uses: actions/checkout@v3
-
-      - name: Build program
-        working-directory: ${{ matrix.dir }}
-        run: anchor build
+      - uses: actions/checkout@v2
+      
+      - name: Install dependencies
+        run: |
+          sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
+          export PATH="/home/runner/.local/share/solana/install/active_release/bin:$PATH"
+          solana -V
+          rustc -V
+          sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev
+          cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
+          avm install latest
+          avm use latest
+          declare -a StringArray=(
+            "basics/checking-accounts/anchor"
+            "basics/close-account/anchor"
+            "basics/counter/anchor"
+            "basics/create-account/anchor"
+            "basics/hello-solana/anchor"
+            "basics/pda-rent-payer/anchor"
+            "basics/processing-instructions/anchor"
+            "basics/program-derived-addresses/anchor"
+            "basics/rent/anchor"
+            "basics/repository-layout/anchor"
+            "basics/transfer-sol/anchor"
+            "compression/cnft-vault/anchor"
+            "oracles/pyth/anchor"
+            "tokens/create-token/anchor"
+            "tokens/nft-minter/anchor"
+            "tokens/pda-mint-authority/anchor"
+            "tokens/spl-token-minter/anchor"
+            "tokens/token-2022/basics/anchor"
+            "tokens/transfer-tokens/anchor"
+            "basics/account-data/anchor"
+          )
+          for val in "${StringArray[@]}"; do
+             echo "Building $val..."
+             cd $val
+             anchor build
+             cd - > /dev/null
+          done
+        shell: bash

+ 44 - 52
.github/workflows/native.yml

@@ -1,60 +1,52 @@
-name: Native Programs
+name: Native Build
 
 on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-env:
-  CARGO_TERM_COLOR: always
+  schedule:
+    - cron: '0 0 1 * *'
 
 jobs:
   build:
-    name: Build
     runs-on: ubuntu-latest
-    container:
-      image: docker.io/solanadevelopers/solana-workshop-image:0.0.2
-      credentials:
-        username: solanadevelopers
-        password: ${{  secrets.DOCKER_CONTAINER_REGISTRY_TOKEN }}
-    strategy:
-      matrix:
-        {
-          dir:
-            [
-              "basics/account-data/native/program",
-              "basics/checking-accounts/native/program",
-              "basics/close-account/native/program",
-              "basics/counter/native",
-              "basics/create-account/native/program",
-              "basics/cross-program-invocation/native/program",
-              "basics/hello-solana/native/program",
-              "basics/pda-rent-payer/native/program",
-              "basics/processing-instructions/native/program",
-              "basics/program-derived-addresses/native/program",
-              "basics/realloc/native/program",
-              "basics/rent/native/program",
-              "basics/repository-layout/native/program",
-              "basics/transfer-sol/native/program",
-              "tokens/create-token/native/program",
-              "tokens/nft-minter/native/program",
-              "tokens/pda-mint-authority/native/program",
-              "tokens/spl-token-minter/native/program",
-              "tokens/token-2022/default-account-state/native/program",
-              "tokens/token-2022/mint-close-authority/native/program",
-              "tokens/token-2022/multiple-extensions/native/program",
-              "tokens/token-2022/non-transferable/native/program",
-              "tokens/token-2022/transfer-fees/native/program",
-              "tokens/transfer-tokens/native/program",
-              "tools/shank-and-solita/native/program",
-            ],
-        }
 
     steps:
-      - name: Checkout code
-        uses: actions/checkout@v3
-
-      - name: Build program
-        working-directory: ${{ matrix.dir }}
-        run: cargo build-sbf --verbose
+      - uses: actions/checkout@v2
+      
+      - name: Install dependencies
+        run: |
+          sh -c "$(curl -sSfL https://release.solana.com/beta/install)"
+          export PATH="/home/runner/.local/share/solana/install/active_release/bin:$PATH"
+          solana -V
+          rustc -V
+          declare -a StringArray=(
+            "basics/account-data/native/program"
+            "basics/checking-accounts/native/program"
+            "basics/close-account/native/program"
+            "basics/counter/native"
+            "basics/create-account/native/program"
+            "basics/hello-solana/native/program"
+            "basics/pda-rent-payer/native/program"
+            "basics/processing-instructions/native/program"
+            "basics/program-derived-addresses/native/program"
+            "basics/realloc/native/program"
+            "basics/rent/native/program"
+            "basics/repository-layout/native/program"
+            "basics/transfer-sol/native/program"
+            "tokens/nft-minter/native/program"
+            "tokens/pda-mint-authority/native/program"
+            "tokens/spl-token-minter/native/program"
+            "tokens/token-2022/default-account-state/native/program"
+            "tokens/token-2022/mint-close-authority/native/program"
+            "tokens/token-2022/multiple-extensions/native/program"
+            "tokens/token-2022/non-transferable/native/program"
+            "tokens/token-2022/transfer-fees/native/program"
+            "tokens/transfer-tokens/native/program"
+            "tools/shank-and-solita/native/program"
+            "tokens/create-token/native/program"
+          )
+          for val in "${StringArray[@]}"; do
+             echo "Building $val..."
+             cd $val
+             cargo-build-sbf --verbose
+             cd - > /dev/null
+          done
+        shell: bash

+ 29 - 31
.github/workflows/seahorse.yml

@@ -1,39 +1,37 @@
-name: Seahorse Programs
+name: Seahorse Build
 
 on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-env:
-  CARGO_TERM_COLOR: always
+  schedule:
+    - cron: '0 0 1 * *'
 
 jobs:
   build:
-    name: Build
     runs-on: ubuntu-latest
-    container:
-      image: docker.io/solanadevelopers/solana-workshop-image-seahorse
-      credentials:
-        username: solanadevelopers
-        password: ${{  secrets.DOCKER_CONTAINER_REGISTRY_TOKEN }}
-    strategy:
-      matrix:
-        {
-          dir:
-            [
-              "basics/counter/seahorse",
-              "basics/hello-solana/seahorse",
-              "basics/transfer-sol/seahorse",
-              "oracles/pyth/seahorse",
-            ],
-        }
 
     steps:
-      - name: Checkout code
-        uses: actions/checkout@v3
-
-      - name: Build program
-        working-directory: ${{ matrix.dir }}
-        run: cargo build-sbf --verbose
+      - uses: actions/checkout@v2
+      
+      - name: Install dependencies
+        run: |
+          sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
+          export PATH="/home/runner/.local/share/solana/install/active_release/bin:$PATH"
+          solana -V
+          rustc -V
+          sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev
+          cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
+          avm install 0.27.0
+          avm use 0.27.0
+          cargo install seahorse-lang
+          declare -a StringArray=(
+              "basics/counter/seahorse"
+              "basics/hello-solana/seahorse"
+              "basics/transfer-sol/seahorse"
+              "oracles/pyth/seahorse"
+          )
+          for val in "${StringArray[@]}"; do
+             echo "Building $val..."
+             cd $val
+             seahorse build
+             cd - > /dev/null
+          done
+        shell: bash