Skip to content

chore(deps): update actions/checkout digest to 692973e #3370

chore(deps): update actions/checkout digest to 692973e

chore(deps): update actions/checkout digest to 692973e #3370

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
commitlint:
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
extraPullNames: nix-community,poetry2nix
- name: commitlint
run: nix shell -L -f '<nixpkgs>' commitlint -c commitlint --from=${{ github.event.pull_request.base.sha }} --to=${{ github.sha }} --verbose
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community,poetry2nix
- run: nix develop -c pre-commit run --all-files
nix:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
python-version:
- "38"
- "39"
- "310"
- "311"
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community,poetry2nix
- name: build package and run tests
run: nix build --print-build-logs --no-link --keep-going '.#protoletariat${{ matrix.python-version }}'
- name: show closure info
run: nix path-info --closure-size --human-readable --recursive '.#protoletariat${{ matrix.python-version }}'
docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community,poetry2nix
- name: build and load docker image
run: nix run --print-build-logs --keep-going '.#protoletariat-image.copyToDockerDaemon'
- run: docker images protoletariat
- name: smoke test docker image
run: |
set -euo pipefail
imagetag="$(nix eval --raw '.#protoletariat-image.imageTag')"
docker run --rm "protoletariat:${imagetag}"
conda-ubuntu-macos:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
buf:
- buf
include:
- os: ubuntu-latest
python-version: "3.9"
buf: no-buf
- os: macos-latest
python-version: "3.9"
buf: no-buf
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
- uses: bufbuild/[email protected]
if: ${{ matrix.buf == 'buf' }}
with:
github_token: ${{ github.token }}
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: pip3 install poetry2conda poetry
- name: Generate conda environment file
run: |
set -euo pipefail
poetry2conda --dev pyproject.toml - | tee environment.yml
- uses: conda-incubator/setup-miniconda@v2
with:
mamba-version: "*"
miniforge-variant: Mambaforge
miniforge-version: latest
channel-priority: strict
activate-environment: protoletariat
python-version: ${{ matrix.python-version }}
environment-file: environment.yml
- run: mamba install grpc-cpp grpcio-tools
- run: pip install .
- run: pytest -ra
conda-windows:
strategy:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
buf:
- buf
include:
- python-version: "3.9"
buf: no-buf
runs-on: windows-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
- uses: bufbuild/[email protected]
if: ${{ matrix.buf == 'buf' }}
with:
github_token: ${{ github.token }}
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: pip3 install poetry2conda poetry
- name: Generate conda environment file
run: poetry2conda --dev pyproject.toml - > environment.yml
- uses: conda-incubator/setup-miniconda@v2
with:
mamba-version: "*"
miniforge-variant: Mambaforge
miniforge-version: latest
channel-priority: strict
activate-environment: protoletariat
python-version: ${{ matrix.python-version }}
environment-file: environment.yml
- run: mamba install grpc-cpp grpcio-tools pip
- run: pip install .
- run: pytest -ra
tensorflow:
runs-on: ubuntu-latest
env:
PYTHON_OUT: /tmp/tensorflow-gen
TENSORFLOW_HOME: ${{ github.workspace }}/tensorflow
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
with:
path: protoletariat
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community,poetry2nix
- name: Clone Tensorflow
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
with:
repository: tensorflow/tensorflow
path: tensorflow
- run: mkdir -p "$PYTHON_OUT"
- name: Generate tensorflow Python proto code
working-directory: protoletariat
run: |
set -euo pipefail
mapfile -t files < <(find "$TENSORFLOW_HOME" -name '*.proto')
nix develop -c \
protoc \
--python_out "$PYTHON_OUT" \
--proto_path "$TENSORFLOW_HOME" "${files[@]}"
- name: Test tensorflow rewriting
working-directory: protoletariat
run: |
set -euo pipefail
mapfile -t files < <(find "$TENSORFLOW_HOME" -name '*.proto')
nix run '.#protoletariat' \
-- \
--in-place \
--create-package \
--python-out "$PYTHON_OUT" \
protoc \
--proto-path "$TENSORFLOW_HOME" "${files[@]}"
- name: Check for absolute imports
run: grep -vq -R '^import tensorflow' "$PYTHON_OUT"
dry-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
extraPullNames: nix-community,poetry2nix
- name: Configure git info
run: |
set -euo pipefail
# not incredibly important what user we use here
#
# we're making a commit in a temporary worktree that is thrown away
# if the process exits successfully
#
# git requires user information to make commits
git config user.name 'phillip-ground[bot]'
git config user.email 'phillip-ground[bot]@users.noreply.github.com'
- name: run semantic-release
run: ./ci/release/dry_run.sh
release:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' }}
needs:
- nix
- conda-ubuntu-macos
- conda-windows
- docker-image
- pre-commit
- tensorflow
- dry-release
steps:
- uses: actions/[email protected]
id: generate_token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
with:
fetch-depth: 0
token: ${{ steps.generate_token.outputs.token }}
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable-small
- uses: cachix/cachix-action@v12
with:
name: protoletariat
extraPullNames: nix-community,poetry2nix
- name: run semantic-release
run: ./ci/release/run.sh
env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}