Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
gskorokhod committed Nov 6, 2023
2 parents db3ddbc + 208330a commit b4adc62
Show file tree
Hide file tree
Showing 31 changed files with 1,912 additions and 271 deletions.
33 changes: 16 additions & 17 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2

updates:
- package-ecosystem: "cargo" # See documentation for possible values
directory: "/" # Location of package manifests

- package-ecosystem: cargo
directory: /
schedule:
interval: "weekly"
interval: weekly
assignees:
- "ozgurakgun"
- ozgurakgun
groups:
all:
patterns:
- "*"
- package-ecosystem: "gitsubmodule"
directory: "/"
- '*'

- package-ecosystem: gitsubmodule
directory: /
schedule:
interval: "weekly"
interval: weekly
assignees:
- "ozgurakgun"
- ozgurakgun

- package-ecosystem: "pip"
directory: "/tools/essence-feature-usage-stats/"
- package-ecosystem: pip
directory: /tools/essence-feature-usage-stats/
schedule:
interval: "weekly"
interval: weekly
assignees:
- "ozgurakgun"

- ozgurakgun
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
# https://doc.rust-lang.org/cargo/guide/continuous-integration.html
# https://ectobit.com/blog/speed-up-github-actions-rust-pipelines/
name: "solvers/chuffed"

on:
workflow_dispatch:
push:
branches:
- main # run for pushes to the main branch
paths:
- "solvers/chuffed/**"
- "Cargo.*"
pull_request:
paths:
- "solvers/chuffed/**"
- "Cargo.*"
workflow_dispatch:


jobs:
ubuntu:
name: "solvers/chuffed: Ubuntu Build"
name: "Chuffed: Ubuntu Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# https://stackoverflow.com/questions/32327108/get-the-current-commit-id-of-specified-submodule
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -37,9 +39,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand All @@ -48,15 +50,16 @@ jobs:
run: cargo build -vv

mac:
name: "solvers/chuffed: Mac Build"
name: "Chuffed: Mac Build"
runs-on: macos-latest
steps:
- uses: actions/checkout@v2

- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -68,9 +71,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand All @@ -82,17 +85,19 @@ jobs:
run: cargo build -vv

tests:
name: "solvers/chuffed: Tests"
name: "Chuffed: Tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# https://stackoverflow.com/questions/32327108/get-the-current-commit-id-of-specified-submodule
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
echo "cache_paths=$(./etc/ci/get_caching_paths.sh)" >> "$GITHUB_OUTPUT"
echo "cache_paths=$(./etc/ci/get_caching_paths.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -104,9 +109,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand Down
95 changes: 95 additions & 0 deletions .github/workflows/code-coverage-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: "Code Coverage (Deploy)"

on:
workflow_run:
workflows: ["Code Coverage (Generate)"]
types:
- completed


# see https://github.com/JamesIves/github-pages-deploy-action/tree/dev
permissions:
contents: write

jobs:
deploy-coverage:
name: "Info: Code Coverage"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Download artifact
uses: dawidd6/action-download-artifact@v2
with:
name: code-coverage-${{ github.event.workflow_run.head_sha }}
workflow: code-coverage.yml
path: ./deploy

- name: Deploy to Github Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: ./deploy
target-folder: "coverage/${{ github.event.workflow_run.head_sha }}"
branch: gh-pages
commit-message: "Actions: Code Coverage for ${{ github.event.workflow_run.head_sha }}"

- name: If on main branch, copy coverage report to /latest.
if: github.ref == 'refs/heads/main'
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: ./deploy
target-folder: "coverage/latest"
branch: gh-pages
commit-message: "Actions: Update latest code coverage for main (${{ github.event.workflow_run.head_sha }})"

- name: Format summary
run : |
CONJURE_OXIDE_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/conjure-oxide"
MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/minion"
CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/chuffed"
CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/conjure-oxide"
MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/minion"
CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/chuffed"
echo '# Code Coverage' >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## This commit" >> $GITHUB_STEP_SUMMARY
echo "| Crate | | | " >> $GITHUB_STEP_SUMMARY
echo "| ----- | ----- | ----- |" >> $GITHUB_STEP_SUMMARY
echo "| Conjure-Oxide | ![](${CONJURE_OXIDE_URL}/badges/flat.svg) | [Full Report](${CONJURE_OXIDE_URL}) | " >> $GITHUB_STEP_SUMMARY
echo "| Minion | ![](${MINION_URL}/badges/flat.svg) | [Full Report](${MINION_URL}) | " >> $GITHUB_STEP_SUMMARY
echo "| Chuffed | ![](${CHUFFED_URL}/badges/flat.svg) | [Full Report](${CHUFFED_URL}) | " >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Main" >> $GITHUB_STEP_SUMMARY
echo "| Crate | | | " >> $GITHUB_STEP_SUMMARY
echo "| ----- | ----- | ----- |" >> $GITHUB_STEP_SUMMARY
echo "| Conjure-Oxide | ![](${CONJURE_OXIDE_LATEST}/badges/flat.svg) | [Full Report](${CONJURE_OXIDE_LATEST}) | " >> $GITHUB_STEP_SUMMARY
echo "| Minion | ![](${MINION_LATEST}/badges/flat.svg) | [Full Report](${MINION_LATEST}) | " >> $GITHUB_STEP_SUMMARY
echo "| Chuffed | ![](${CHUFFED_LATEST}/badges/flat.svg) | [Full Report](${CHUFFED_LATEST}) | " >> $GITHUB_STEP_SUMMARY
indexes:
needs: deploy-coverage
name: "Regenerate indexes for coverage"
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2

- name: Checkout the pages repository
uses: actions/checkout@v2
with:
ref: "gh-pages"
path: "pages"

- name: "Generate indexes"
run: |
./etc/ci/genindex.py pages/coverage/${{ github.event.workflow_run.head_sha }}
./etc/ci/genindex.py pages/coverage/latest
./etc/ci/genindex.py pages/coverage/
- uses: JamesIves/github-pages-deploy-action@v4
with:
folder: ./pages/coverage/
target-folder: ./coverage/
branch: gh-pages
commit-message: "Actions: Update coverage indexes"
68 changes: 68 additions & 0 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: "Code Coverage (Generate)"

on:
push:
branches:
- main # run for pushes to the main branch
pull_request:
workflow_dispatch:


jobs:
coverage:
name: "Generate Code Coverage Reports"
# only do coverage for ready PRs
if: ${{ github.event != 'pull_request' || ( github.event == 'pull_request' && (! github.event.pull_request.draft)) }}
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2

- name: Generate caching variables
id: cache-vars
run: |
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index
~/.cargo/git/
target/
solvers/minion/vendor
solvers/chuffed/vendor
key: nightly-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-gitmodules-

- name: Install rust nightly
working-directory: ./solvers/minion
run: rustup update nightly && rustup default nightly

- name: Generate coverage reports
working-directory: .
run: |
./etc/scripts/gen_coverage_all.sh
- name: Move all html to correct folders for deployment
run: |
# put things both in the sha directory, and in latest/
mkdir -p deploy/conjure-oxide
mkdir -p deploy/minion
mkdir -p deploy/chuffed
cp -r coverage/html/* deploy/conjure-oxide
cp -r solvers/minion/coverage/html/* deploy/minion
cp -r solvers/chuffed/coverage/html/* deploy/chuffed
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code-coverage-${{ github.sha }}
path: deploy/**



Loading

0 comments on commit b4adc62

Please sign in to comment.