Fix crash when switching sources having different variations #59
Workflow file for this run
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: CI | |
on: [push, pull_request] | |
jobs: | |
test: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
image: | |
- ubuntu-daily:focal | |
- ubuntu-daily:jammy | |
- ubuntu-daily:lunar | |
- ubuntu-daily:mantic | |
steps: | |
- uses: actions/checkout@v4 | |
- name: run | |
run: sudo ./scripts/test-in-lxd.sh ${{ matrix.image }} "make check" | |
lint: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
image: | |
- ubuntu-daily:jammy # match the core snap we're running against | |
- ubuntu-daily:mantic # latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: lint | |
run: sudo ./scripts/test-in-lxd.sh ${{ matrix.image }} "make lint" | |
format-black: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: psf/black@stable | |
with: | |
version: "~= 23.0" | |
src: "console_conf subiquity subiquitycore system_setup" | |
format-isort: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: isort/isort-action@v1 | |
with: | |
isort-version: "5.12.0" | |
sort-paths: "console_conf subiquity subiquitycore system_setup" | |
static-typing: | |
# In this job, we compare the output of mypy before and after the PR. | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install mypy and typeshed | |
run: sudo apt-get install -y python3-mypy python3-typeshed | |
- name: Checkout the pull request branch | |
uses: actions/checkout@v4 | |
with: | |
# When no ref is specified, a merge commit (from PR branch to target | |
# branch) will be checked out. Use the last commit of the PR branch | |
# instead. | |
ref: ${{ github.event.pull_request.head.sha }} | |
# By default, no ancestors of the specified revision will be checked | |
# out (see shallow repositories). Let's fetch just enough revisions | |
# so that, later, we can access the most recent common ancestor. | |
# If it does not work, we can set fetch-depth: 0 | |
fetch-depth: $(( ${{ github.event.pull_request.commits }} + 1 )) | |
- name: Run mypy on pull request branch | |
run: python3 -m mypy --ignore-missing-imports --check-untyped-defs subiquity subiquitycore system_setup console_conf scripts/replay-curtin-log.py | tee /tmp/mypy-head.out | |
- name: Determine base commit (most recent common ancestor) | |
id: determine_base_commit | |
run: | | |
ancestor=$(git merge-base -- \ | |
"${{ github.event.pull_request.base.sha }}" \ | |
"${{ github.event.pull_request.head.sha }}") | |
echo "base_commit=$ancestor" >> "$GITHUB_OUTPUT" | |
- name: Checkout the base commit (most recent common ancestor) | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ steps.determine_base_commit.outputs.base_commit }} | |
- run: git show | |
- name: Run mypy on base commit | |
run: python3 -m mypy --ignore-missing-imports --check-untyped-defs subiquity subiquitycore system_setup console_conf scripts/replay-curtin-log.py | tee /tmp/mypy-base.out | |
- name: Produce the diff between the two mypy runs | |
run: diff --color=always --unified=0 /tmp/mypy-base.out /tmp/mypy-head.out | |
continue-on-error: true |