This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
rotini/.github/workflows/backend-pipeline.yml
Marc Cataford 1554e23e7f
build(backend): run as a container (#17)
* docs: document running as a container

* build: functional dockerfile

* build: task command tweaks to accommodate docker app

* ci(backend): optionally build dev docker image
2023-08-15 23:57:09 -04:00

112 lines
3.1 KiB
YAML

name: Backend Pipeline
on:
workflow_call:
inputs:
task-version:
required: true
type: string
outputs:
pipeline-success:
value: ${{ jobs.notify-success.outputs.pipeline_success }}
env:
ROTINI_CI: 1
defaults:
run:
working-directory: backend
jobs:
setup:
runs-on: ubuntu-latest
name: Setup
steps:
- uses: actions/checkout@v3
- name: get-python-version
run: |
echo "python_version=$(cat .python-version)" >> $GITHUB_OUTPUT
- uses: actions/setup-python@v3
with:
python-version: ${{ steps.get-python-version.outputs.python_version }}
- uses: actions/cache@v3
id: cache-restore
with:
path: |
backend/.venv
key: ${{ runner.os }}-${{ hashFiles('**/requirements*.txt') }}-${{ steps.get-python-version.outputs.python_version }}
- name: Install dependencies
if: steps.cache-restore.outputs.cache-hit != 'true'
run: . script/bootstrap
lint:
runs-on: ubuntu-latest
name: Lint
needs: setup
steps:
- uses: actions/checkout@v3
- name: get-python-version
run: |
echo "python_version=$(cat .python-version)" >> $GITHUB_OUTPUT
- uses: actions/setup-python@v3
with:
python-version: ${{ steps.get-python-version.outputs.python_version }}
- name: Setup Task
uses: arduino/setup-task@v1
with:
version: ${{ inputs.task-version }}
- uses: actions/cache@v3
id: cache-restore
with:
path: |
backend/.venv
key: ${{ runner.os }}-${{ hashFiles('**/requirements*.txt') }}-${{ steps.get-python-version.outputs.python_version }}
- name: Lint
run: |
task be:lint
test:
runs-on: ubuntu-latest
name: Test
needs: setup
steps:
- uses: actions/checkout@v3
- name: get-python-version
run: |
echo "python_version=$(cat .python-version)" >> $GITHUB_OUTPUT
- uses: actions/setup-python@v3
with:
python-version: ${{ steps.get-python-version.outputs.python_version }}
- name: Setup Task
uses: arduino/setup-task@v1
with:
version: ${{ inputs.task-version }}
- uses: actions/cache@v3
id: cache-restore
with:
path: |
backend/.venv
key: ${{ runner.os }}-${{ hashFiles('**/requirements*.txt') }}-${{ steps.get-python-version.outputs.python_version }}
- name: Test
run: |
task be:test
docker-build:
runs-on: ubuntu-latest
name: Build Development Docker Image
steps:
- uses: actions/checkout@v3
- name: Setup Task
uses: arduino/setup-task@v1
with:
version: ${{ inputs.task-version }}
- name: Build
run: |
task be:docker-build
notify-success:
runs-on: ubuntu-latest
name: Notify success
needs: [lint, test]
steps:
- id: set-output
working-directory: /
run: echo "pipeline_success=true" >> "$GITHUB_OUTPUT"
outputs:
pipeline_success: ${{ steps.set-output.outputs.pipeline_success }}