name: {{ name }} on: push: branches: - {{ branch }} pull_request: branches: - {{ branch }} jobs: reuse: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: REUSE Compliance Check uses: fsfe/reuse-action@v1 static-code-analysis: env: RCA_LINK: https://github.com/mozilla/rust-code-analysis/releases/download RCA_VERSION: v0.0.25 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install rust-code-analysis run: | mkdir -p $HOME/.local/bin curl -L "$RCA_LINK/$RCA_VERSION/rust-code-analysis-linux-cli-x86_64.tar.gz" | tar xz -C $HOME/.local/bin echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Run rust-code-analysis run: | mkdir $HOME/rca-json rust-code-analysis-cli --metrics -O json --pr -o "$HOME/rca-json" -p $PWD - name: Upload rust-code-analysis json uses: actions/upload-artifact@v3 with: name: rca-json path: ~/rca-json style: needs: [reuse, static-code-analysis] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up last Python version uses: actions/setup-python@v4 - name: Install poetry run: | pip install poetry - name: Install dependencies run: | poetry install - name: Run pre-commit run: | poetry run pre-commit run -a tests: needs: [reuse, static-code-analysis, style] strategy: matrix: platform: [ubuntu-latest, macos-latest, windows-latest] runs-on: {{ '${{ matrix.platform }}' }} steps: - uses: actions/checkout@v4 - name: Set up last Python version uses: actions/setup-python@v4 - name: Install poetry run: | pip install poetry - name: Install dependencies run: | poetry install - name: Run tests and print code coverage report run: | poetry run coverage run -m pytest poetry run coverage report -m - name: Create Codecov report run: | poetry run coverage lcov - name: Upload Coverage to Codecov uses: codecov/codecov-action@v3 with: files: coverage.lcov