Some Docker file and build improvements. Dependency updates. #757
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Format, Clippy and Tests | |
| on: | |
| push: | |
| branches: | |
| - development | |
| - main | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - synchronize | |
| concurrency: | |
| group: ${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| format-clippy-test: | |
| name: Format, Clippy and Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: ikalnytskyi/action-setup-postgres@v8 | |
| with: | |
| postgres-version: 18 | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Build Crystal admin app | |
| run: | | |
| cd submerge-crystal/admin | |
| npm install | |
| npm run build | |
| cd ../.. | |
| - name: Make the chainspec init script executable | |
| run: chmod +x ./_chainspecs/init.sh | |
| - name: Fetch chainspecs | |
| run: ./_chainspecs/init.sh | |
| - name: Install vacuum | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Increases rate limit from 60 to 5000 requests/hour | |
| run: | | |
| curl -fsSL https://quobix.com/scripts/install_vacuum.sh | sh | |
| - name: Install Rust Toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: nightly #-2025-08-01 # toolchain | |
| components: clippy, rustfmt | |
| override: true | |
| - run: rustup update | |
| - run: rustup update nightly #-2025-08-01 # toolchain | |
| - run: rustup default nightly #-2025-08-01 # toolchain | |
| - run: rustup target add wasm32-unknown-unknown --toolchain nightly #-2025-08-01 # toolchain | |
| - run: rustup default stable | |
| - name: Generate Crystal OpenAPI specs and Lint with Vacuum | |
| run: | | |
| cd submerge-crystal | |
| cargo run --bin openapi-gen | |
| vacuum lint --ignore-file ../vacuum-ignore.yaml -d ./api-spec/submerge-crystal-api.json | |
| cd .. | |
| - name: Reset test DB | |
| env: | |
| PGUSER: postgres | |
| PGPASSWORD: postgres | |
| PGHOST: 127.0.0.1 | |
| run: | | |
| psql -c "CREATE USER submerge WITH ENCRYPTED PASSWORD 'submerge';" | |
| psql -c "CREATE DATABASE submerge_crystal_test;" | |
| psql -c "GRANT ALL ON DATABASE submerge_crystal_test TO submerge;" | |
| psql -c "ALTER DATABASE submerge_crystal_test OWNER TO submerge;" | |
| - name: Migrate test DB | |
| env: | |
| PGUSER: submerge | |
| PGPASSWORD: submerge | |
| PGHOST: 127.0.0.1 | |
| PGDATABASE: submerge_crystal_test | |
| run: | | |
| for file in ./_migrations/crystal/migrations/*.up.sql; do | |
| echo "Executing $file..." | |
| psql -f "$file" | |
| done | |
| - name: Format | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: fmt | |
| args: --all -- --check | |
| - name: Clippy | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| toolchain: nightly #-2025-08-01 # toolchain | |
| command: clippy | |
| args: --all-targets -- -D warnings -W clippy::too_many_lines -W clippy::excessive_nesting | |
| - name: Make the chainspec init script executable | |
| run: chmod +x ./_chainspecs/init.sh | |
| - name: Init chainspecs | |
| run: ./_chainspecs/init.sh | |
| - name: Test | |
| uses: actions-rs/cargo@v1 | |
| env: | |
| MERKLE_SCIENCE_API_KEY: ${{ secrets.MERKLE_SCIENCE_API_KEY }} | |
| RUST_TEST_THREADS: 1 | |
| with: | |
| command: test |