Specs #25
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: Specs | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
suite: | |
- { path: bundler, name: bundler1, ci_node_total: 2, ci_node_index: 0, ecosystem: bundler } | |
- { path: bundler, name: bundler1, ci_node_total: 2, ci_node_index: 1, ecosystem: bundler } | |
- { path: bundler, name: bundler2, ci_node_total: 2, ci_node_index: 0, ecosystem: bundler } | |
- { path: bundler, name: bundler2, ci_node_total: 2, ci_node_index: 1, ecosystem: bundler } | |
- { path: cargo, name: cargo, ecosystem: cargo } | |
- { path: common, name: common, ecosystem: common} | |
- { path: composer, name: composer, ci_node_total: 2, ci_node_index: 0, ecosystem: composer } | |
- { path: composer, name: composer, ci_node_total: 2, ci_node_index: 1, ecosystem: composer } | |
- { path: docker, name: docker, ecosystem: docker } | |
- { path: elm, name: elm, ecosystem: elm } | |
- { path: git_submodules, name: git_submodules, ecosystem: gitsubmodule } | |
- { path: github_actions, name: github_actions, ecosystem: github-actions } | |
- { path: go_modules, name: go_module, ci_node_total: 2, ci_node_index: 0, ecosystem: gomod } | |
- { path: go_modules, name: go_module, ci_node_total: 2, ci_node_index: 1, ecosystem: gomod } | |
- { path: gradle, name: gradle, ecosystem: gradle } | |
- { path: hex, name: hex, ci_node_total: 2, ci_node_index: 0, ecosystem: mix } | |
- { path: hex, name: hex, ci_node_total: 2, ci_node_index: 1, ecosystem: mix } | |
- { path: maven, name: maven, ecosystem: maven } | |
- { path: npm_and_yarn, name: npm_and_yarn, ci_node_total: 3, ci_node_index: 0, ecosystem: npm } | |
- { path: npm_and_yarn, name: npm_and_yarn, ci_node_total: 3, ci_node_index: 1, ecosystem: npm } | |
- { path: npm_and_yarn, name: npm_and_yarn, ci_node_total: 3, ci_node_index: 2, ecosystem: npm } | |
- { path: nuget, name: nuget, ecosystem: nuget } | |
- { path: pub, name: pub, ci_node_total: 2, ci_node_index: 0, ecosystem: pub } | |
- { path: pub, name: pub, ci_node_total: 2, ci_node_index: 1, ecosystem: pub } | |
- { path: python, name: python, ci_node_total: 2, ci_node_index: 0, ecosystem: pip } | |
- { path: python, name: python, ci_node_total: 2, ci_node_index: 1, ecosystem: pip } | |
- { path: python, name: python_slow, ci_node_total: 2, ci_node_index: 0, ecosystem: pip } | |
- { path: python, name: python_slow, ci_node_total: 2, ci_node_index: 1, ecosystem: pip } | |
- { path: terraform, name: terraform, ecosystem: terraform } | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
bundler: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'bundler/**' | |
cargo: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'cargo/**' | |
common: | |
- Dockerfile.updater-core | |
- '**/**' | |
- '.github/workflows/ci.yml' | |
composer: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'composer/**' | |
docker: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'docker/**' | |
elm: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'elm/**' | |
git_submodules: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'git_submodules/**' | |
github_actions: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'github_actions/**' | |
go_modules: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'go_modules/**' | |
- '.github/workflows/ci.yml' | |
gradle: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'maven/**' | |
- 'gradle/**' | |
hex: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'hex/**' | |
maven: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'maven/**' | |
- '.github/workflows/ci.yml' | |
npm_and_yarn: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'npm_and_yarn/**' | |
nuget: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'nuget/**' | |
pub: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- '.github/workflows/ci.yml' | |
- 'pub/**' | |
python: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- 'python/**' | |
- '.github/workflows/ci.yml' | |
terraform: | |
- Dockerfile.updater-core | |
- 'common/**' | |
- 'updater/Gemfil*' | |
- 'omnibus/**' | |
- 'terraform/**' | |
- '.github/workflows/ci.yml' | |
- name: Build ecosystem image | |
if: steps.changes.outputs[matrix.suite.path] == 'true' | |
run: script/build ${{ matrix.suite.path }} | |
- name: Run ${{ matrix.suite.name }} tests | |
if: steps.changes.outputs[matrix.suite.path] == 'true' | |
run: | | |
docker run \ | |
--pull never \ | |
--env "CI=true" \ | |
--env "RAISE_ON_WARNINGS=true" \ | |
--env "DEPENDABOT_TEST_ACCESS_TOKEN=${{ secrets.GITHUB_TOKEN }}" \ | |
--env "SUITE_NAME=${{ matrix.suite.name }}" \ | |
--env "CI_NODE_TOTAL=${{ matrix.suite.ci_node_total }}" \ | |
--env "CI_NODE_INDEX=${{ matrix.suite.ci_node_index }}" \ | |
--rm ghcr.io/dependabot/dependabot-updater-${{ matrix.suite.ecosystem }} bash -c \ | |
"cd /home/dependabot/${{ matrix.suite.path }} && ./script/ci-test" | |
updater: | |
env: | |
DOCKER_BUILDKIT: 1 | |
name: Updater | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# using bundler as the test updater | |
- name: Build ecosystem image | |
run: script/build bundler | |
- name: Run updater tests | |
env: | |
DEPENDABOT_TEST_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: script/ci-test-updater | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: actions/setup-python@v4 | |
with: | |
python-version-file: .python-version | |
cache: pip | |
- run: pip install -r requirements.txt | |
- run: ./bin/lint |