Skip to content

Fix the rust version used in pipeline #1645

Fix the rust version used in pipeline

Fix the rust version used in pipeline #1645

Workflow file for this run

name: Build, lint and typecheck examples
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [main, release**, feature**]
pull_request:
branches: ['**']
# Don't run on draft PR's, see: https://github.com/orgs/community/discussions/25722#discussioncomment-3248917
types: [opened, synchronize, reopened, ready_for_review]
# Allows us to run the workflow manually from the Actions tab
workflow_dispatch:
env:
DUMMY: 3 # For cache busting.
NODE_VERSION: 18.16.0
RUST_VERSION: 1.73
RUST_FMT: nightly-2023-04-01-x86_64-unknown-linux-gnu
jobs:
deps:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Cache dependencies
id: yarn-cache
uses: actions/cache@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}-${{ env.DUMMY }}
restore-keys: |
${{ runner.os }}-yarn
- name: Get dependencies
run: yarn install --immutable
build:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
needs: deps
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Cache GRPC
id: cache-grpc
uses: actions/cache@v3
with:
path: |
./packages/sdk/src/grpc-api
key: ${{ runner.os }}-grpc-${{ hashFiles('deps/concordium-base/concordium-grpc-api') }}-${{ env.DUMMY }}
restore-keys: ${{ runner.os }}-grpc
- name: Cache WebPack
uses: actions/cache@v3
with:
path: ./packages/web/.webpack-cache
# These two lines ensure that a fresh cache is generated after each run
key: ${{ runner.os }}-webpack-${{ github.run_id }}
restore-keys: ${{ runner.os }}-webpack
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Install rust
run: rustup default ${{ env.RUST_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
packages/rust-bindings
deps/concordium-base/rust-src
deps/concordium-base/smart-contracts/contracts-common
- name: Build
run: yarn build-ci
- name: Store build-debug
uses: actions/upload-artifact@v4
with:
name: build-debug
# sdk/src is needed here because of sdk/src/grpc-api
path: |
packages/rust-bindings/lib
packages/sdk/lib
packages/sdk/src
packages/ccd-js-gen/lib
packages/wallet-connectors/dist
packages/react-components/dist
tests:
runs-on: ubuntu-22.04
needs: build
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Get build-debug
uses: actions/download-artifact@v4
with:
path: packages
name: build-debug
- name: Run Tests
run: yarn test-ci
typedoc:
runs-on: ubuntu-22.04
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Get build-debug
uses: actions/download-artifact@v4
with:
path: packages
name: build-debug
- name: Build typedoc
run: yarn build:docs
lint:
runs-on: ubuntu-22.04
needs: build
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Get build-debug
uses: actions/download-artifact@v4
with:
path: packages
name: build-debug
- name: Lint
run: yarn lint:all && yarn fmt-check:all
markdown-lint:
runs-on: ubuntu-22.04
if: github.event.pull_request.draft == false
needs: deps
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Lint markdown
run: yarn markdown:lint
markdown-linkcheck:
runs-on: ubuntu-22.04
needs: deps
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Lint markdown
run: yarn markdown:linkcheck
size:
runs-on: ubuntu-22.04
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Restore dependencies
uses: actions/cache/restore@v3
with:
path: |
./node_modules
./docs/node_modules
./packages/*/node_modules
./examples/**/node_modules
key: ${{ runner.os }}-yarn
- name: Get build-debug
uses: actions/download-artifact@v4
with:
path: packages
name: build-debug
- name: Size
run: yarn size:no-build
rust_lint_fmt:
runs-on: ubuntu-22.04
if: github.event.pull_request.draft == false
defaults:
run:
working-directory: packages/rust-bindings
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Install formatter
run: |
rustup default ${{ env.RUST_FMT }}
rustup component add rustfmt
- name: Format
run: cargo fmt -- --color=always --check
rust_lint_clippy:
runs-on: ubuntu-22.04
needs: rust_lint_fmt
if: github.event.pull_request.draft == false
defaults:
run:
working-directory: packages/rust-bindings
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Install clippy
run: |
rustup default ${{ env.RUST_VERSION }}
rustup component add clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
packages/rust-bindings
deps/concordium-base/rust-src
deps/concordium-base/smart-contracts/contracts-common
- name: Run clippy
run: cargo clippy --color=always --tests --benches -- -Dclippy::all