updates
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
environment:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build and Push
|
||||
environment: ${{ inputs.environment }}
|
||||
runs-on: self-hosted
|
||||
# timeout-minutes: 20
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Build and push Docker image
|
||||
run: |
|
||||
cd ${{ vars.DOCKERFILE_DIR }}
|
||||
docker login --username ${{ vars.DOCKER_USER }} --password ${{ vars.DOCKER_PASSWORD }} ${{ vars.DOCKER_REGISTRY }}
|
||||
docker buildx build \
|
||||
-t ${{ vars.DOCKER_REGISTRY }}/${{ inputs.environment }}:latest \
|
||||
-t ${{ vars.DOCKER_REGISTRY }}/${{ inputs.environment }}:${{ github.run_number }} \
|
||||
--push .
|
||||
@@ -0,0 +1,33 @@
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
environment:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Release Deploy
|
||||
environment: ${{ inputs.environment }}
|
||||
runs-on: self-hosted
|
||||
# timeout-minutes: 20
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Kubernetes Deploy
|
||||
run: |
|
||||
# for s in $(echo $SECRETS | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]"); do export $s; done
|
||||
# for s in $(echo $VARS | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ); do echo $s && export $s;done
|
||||
|
||||
|
||||
for s in $(echo $SECRETS | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ); do export $s;done
|
||||
for s in $(echo $VARS | jq -r "to_entries|map(\"\(.key)='\(.value|tostring)'\")|.[]"); do echo $s && export $s; done
|
||||
|
||||
envsubst < ${{ vars.K3S_MANIFEST }} | kubectl apply -f -
|
||||
env:
|
||||
K3S_DEPLOY_NAME: ${{ inputs.environment }}
|
||||
K3S_NAMESPACE: ${{ vars.K3S_NAMESPACE }}
|
||||
K3S_DOCKER_IMAGE: ${{ vars.DOCKER_REGISTRY }}/${{ inputs.environment }}:${{ github.run_number }}
|
||||
SECRETS: ${{ toJSON(secrets) }}
|
||||
VARS: ${{ toJSON(vars) }}
|
||||
@@ -0,0 +1,17 @@
|
||||
FROM python:3.12
|
||||
|
||||
WORKDIR /code
|
||||
|
||||
COPY ./requirements/base.txt /code/requirements.txt
|
||||
|
||||
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
||||
|
||||
COPY ./app /code/app
|
||||
|
||||
RUN useradd fastapiuser
|
||||
|
||||
USER fastapiuser
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["fastapi", "run", "app/main.py", "--port", "8080"]
|
||||
@@ -0,0 +1,5 @@
|
||||
fastapi[standard]
|
||||
asyncpg
|
||||
sqlalchemy[asyncio]
|
||||
pydantic
|
||||
pydantic-settings
|
||||
Reference in New Issue
Block a user