skywater-pdk related GitHub Actions
===================================

.. image:: https://img.shields.io/github/license/google/skywater-pdk-actions
   :alt: GitHub license - Apache 2.0
   :target: https://github.com/google/skywater-pdk-actions

.. image:: https://img.shields.io/github/v/tag/google/skywater-pdk-actions?include_prereleases&sort=semver
   :alt: Latest GitHub tag (including pre-releases)
   :target: https://gitHub.com/google/skywater-pdk-actions/commit/

.. image:: https://img.shields.io/github/commits-since/google/skywater-pdk-actions/v0.0
   :alt: GitHub commits since latest release (v0.0)
   :target: https://gitHub.com/google/skywater-pdk-actions/commit/

This repository contains the GitHub actions uses with the
`Google skywater-pdk <https://github.com/google/skywater-pdk>`__ and
`related modules <https://github.com/google?q=skywater-pdk&type=&language=>`__.

.. image:: https://github.com/google/skywater-pdk/raw/main/docs/_static/skywater-pdk-logo.png
   :alt: Google + SkyWater Logo Image
   :align: center
   :target: https://github.com/google/skywater-pdk
   :width: 80%

Actions
=======

Modules Related
---------------

`modules-pr-backporter <./modules-pr-backporter>`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``modules-pr-backporter`` action is used on the
`SkyWater modules <https://github.com/google?q=skywater-pdk-libs>`__
(such as the
`standard cells <https://github.com/google?q=skywater-pdk-libs-sky130_fd_sc>`__)
to enable automatic backporting of pull requests to older released
versions.

`modules-roller <./modules-roller>`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``modules-roller`` action is used by
`the primary SkyWater PDK repo <https://github.com/google/skywater-pdk>`__
to automatically generate pull requests which update the GitHub submodules when
new changes are added to them.

CI Related
----------

-  TODO

Resources
=========

The latest SkyWater SKY130 PDK design resources can be viewed at the following locations:

* `On Github @ google/skywater-pdk <https://github.com/google/skywater-pdk>`_
* `Google CodeSearch interface @ https://cs.opensource.google/skywater-pdk <https://cs.opensource.google/skywater-pdk>`_
* `foss-eda-tools.googlesource.com/skywater-pdk <https://foss-eda-tools.googlesource.com/skywater-pdk/>`_

License
=======

The SkyWater Open Source PDK GitHub actions are released under the
`Apache 2.0 license <https://github.com/google/skywater-pdk/blob/main/LICENSE>`_.

The copyright details (which should also be found at the top of every file) are;

::

   Copyright 2021 SkyWater PDK Authors

   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

       http://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.

