Skip to content

Merge pull request #204 from tj-actions/renovate/tj-actions-changed-f… #656

Merge pull request #204 from tj-actions/renovate/tj-actions-changed-f…

Merge pull request #204 from tj-actions/renovate/tj-actions-changed-f… #656

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
shellcheck:
name: Run shellcheck
runs-on: ubuntu-latest
steps:
- name: Checkout to branch
uses: actions/checkout@v4
- name: shellcheck
uses: reviewdog/[email protected]
test:
name: Run test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- uses: actions-rs/cargo@v1
with:
command: test
args: --all-features --no-fail-fast
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
- uses: actions-rs/[email protected]
- name: Codecov
uses: codecov/[email protected]
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
lint:
name: Run lint
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/clippy-check@v1
with:
args: -- -D warnings
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run rustdoc lints
uses: actions-rs/cargo@v1
with:
command: doc
args: --workspace --all-features --no-deps --document-private-items
test-release:
runs-on: ${{ matrix.os }}
needs: [shellcheck, test, lint]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
json: [true, false]
name: Test release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
with:
json: ${{ matrix.json }}
include_all_old_new_renamed_files: true
- name: Generate output files from JSON with latest release
uses: ./
with:
outputs: ${{ toJSON(steps.changed-files.outputs) }}
keys: |
added_files
copied_files
deleted_files
modified_files
renamed_files
all_old_new_renamed_files
type_changed_files
unmerged_files
unknown_files
all_changed_and_modified_files
all_changed_files
any_changed
only_changed
other_changed_files
all_modified_files
any_modified
only_modified
other_modified_files
any_deleted
only_deleted
other_deleted_files
- name: Show output
working-directory: .github/outputs
run: |
cat added_files.txt
cat copied_files.txt
cat deleted_files.txt
cat modified_files.txt
cat renamed_files.txt
cat type_changed_files.txt
cat unmerged_files.txt
cat unknown_files.txt
cat all_changed_and_modified_files.txt
cat all_changed_files.txt
cat any_changed.txt
cat only_changed.txt
cat other_changed_files.txt
cat all_modified_files.txt
cat any_modified.txt
cat only_modified.txt
cat other_modified_files.txt
cat any_deleted.txt
cat only_deleted.txt
cat other_deleted_files.txt
test-action:
runs-on: ${{ matrix.os }}
needs: [shellcheck, test, lint]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, beta]
json: [true, false]
name: Test action
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
with:
json: ${{ matrix.json }}
include_all_old_new_renamed_files: true
- name: Generate output files from JSON with compiled binary
uses: ./
with:
outputs: ${{ toJSON(steps.changed-files.outputs) }}
bin_path: target/release/json2file
keys: |
added_files
copied_files
deleted_files
modified_files
renamed_files
all_old_new_renamed_files
type_changed_files
unmerged_files
unknown_files
all_changed_and_modified_files
all_changed_files
any_changed
only_changed
other_changed_files
all_modified_files
any_modified
only_modified
other_modified_files
any_deleted
only_deleted
other_deleted_files
- name: Show output
working-directory: .github/outputs
run: |
cat added_files.txt
cat copied_files.txt
cat deleted_files.txt
cat modified_files.txt
cat renamed_files.txt
cat type_changed_files.txt
cat unmerged_files.txt
cat unknown_files.txt
cat all_changed_and_modified_files.txt
cat all_changed_files.txt
cat any_changed.txt
cat only_changed.txt
cat other_changed_files.txt
cat all_modified_files.txt
cat any_modified.txt
cat only_modified.txt
cat other_modified_files.txt
cat any_deleted.txt
cat only_deleted.txt
cat other_deleted_files.txt
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
- name: Generate output files from JSON with compiled binary skip missing keys
uses: ./
with:
outputs: ${{ toJSON(steps.changed-files.outputs) }}
bin_path: target/release/json2file
skip_missing_keys: true
keys: |
added_files
unknown_key
- name: Show output
working-directory: .github/outputs
run: |
cat added_files.txt
if [[ -f unknown_key.txt ]]; then
echo "unknown_key.txt file should not exist"
exit 1
fi
shell: bash