add submodules commands #4
This file contains 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: Rust | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
# This option ensures that Git submodules are recursively checked out | |
submodules: 'recursive' | |
fetch-depth: 0 | |
# Configure submodule URLs as specified in .gitmodules | |
- name: Configure submodule URLs | |
run: | | |
while IFS= read -r line; do | |
if [[ "$line" =~ \[submodule\..*\] ]]; then | |
module_path=$(echo "$line" | sed -e 's/\[submodule\."//' -e 's/"\]//') | |
module_url=$(git config --file .gitmodules --get submodule."$module_path".url) | |
git config --file .gitmodules submodule."$module_path".url "$module_url" | |
fi | |
done < .gitmodules | |
git submodule sync --recursive | |
# Initialize and update git submodules | |
- name: Initialize and update git submodules | |
run: | | |
git submodule sync --recursive | |
git submodule update --init --recursive | |
- name: Build | |
run: cargo build --verbose |