# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
name: Test Docker Image for Run DRC for cell GDS (using Magic) Action

on:
  workflow_dispatch:
  push:
  pull_request:


permissions:
  contents: read


jobs:

  test:
    name: Basic Test

    runs-on: ubuntu-latest

    steps:

    - uses: actions/checkout@v2

    - name: Check tests/action-local/action.yml is up to date
      run: |
        cd run-drc-for-cell-gds-using-magic
        make ./tests/action-local/action.yml
        git diff --exit-code --color=always ./tests/action-local/action.yml

    - uses: ./run-drc-for-cell-gds-using-magic/tests/action-local
      name: Clean cells should pass.
      with:
        top: ./run-drc-for-cell-gds-using-magic/tests/clean

    - uses: ./run-drc-for-cell-gds-using-magic/tests/action-local
      name: Broken cells is filtered (--known-bad).
      with:
        top: ./run-drc-for-cell-gds-using-magic/tests/broken
        known-bad: sky130_fd_sc_hd__clkdlybuf4s15_1

    - uses: ./run-drc-for-cell-gds-using-magic/tests/action-local
      name: Broken cells is filtered (--match-cells).
      with:
        top: ./run-drc-for-cell-gds-using-magic/tests/broken
        match-cell-directories: clean_cell

    - uses: ./run-drc-for-cell-gds-using-magic/tests/action-local
      name: Broken cells should fail.
      id: broken-should-fail
      continue-on-error: true
      with:
        top: ./run-drc-for-cell-gds-using-magic/tests/broken

    - name: Error on success
      if: steps.broken-should-fail.outcome != 'failure'
      run:
        echo "The action should have failed!"
        exit 1
