diff --git a/.github/workflows/build-and-push-airflow.yaml b/.github/workflows/build-and-push-airflow.yaml new file mode 100644 index 0000000..5c8f26e --- /dev/null +++ b/.github/workflows/build-and-push-airflow.yaml @@ -0,0 +1,48 @@ +name: Build & Push Custom Airflow + +on: + push: + branches: [ "main" ] + paths: + - "docker/airflow/**" + - "dags/**" + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/custom-airflow + tags: | + type=raw,value=latest + + - name: Build & Push Custom Airflow Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/airflow/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/build-and-push-data-ingestion.yaml b/.github/workflows/build-and-push-data-ingestion.yaml new file mode 100644 index 0000000..684e6fb --- /dev/null +++ b/.github/workflows/build-and-push-data-ingestion.yaml @@ -0,0 +1,48 @@ +name: Build & Push Data Ingestion Task + +on: + push: + branches: [ "main" ] + paths: + - "docker/data_ingestion/**" + - "src/data_ingestion/**" + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/data-ingestion-task + tags: | + type=raw,value=latest + + - name: Build & Push Data Ingestion Task Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/data_ingestion/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/build-and-push-data-preparation.yaml b/.github/workflows/build-and-push-data-preparation.yaml new file mode 100644 index 0000000..eabadd7 --- /dev/null +++ b/.github/workflows/build-and-push-data-preparation.yaml @@ -0,0 +1,48 @@ +name: Build & Push Data Preparation Task + +on: + push: + branches: [ "main" ] + paths: + - "docker/data_preparation/**" + - "src/data_preparation/**" + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/data-preparation-task + tags: | + type=raw,value=latest + + - name: Build & Push Data Preparation Task Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/data_preparation/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/build-and-push-mlflow.yaml b/.github/workflows/build-and-push-mlflow.yaml new file mode 100644 index 0000000..ef9345c --- /dev/null +++ b/.github/workflows/build-and-push-mlflow.yaml @@ -0,0 +1,47 @@ +name: Build & Push Custom MLFlow + +on: + push: + branches: [ "main" ] + paths: + - "docker/mlflow/**" + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/custom-mlflow + tags: | + type=raw,value=latest + + - name: Build & Push Custom MLFlow Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/mlflow/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/build-and-push-streamlit.yaml b/.github/workflows/build-and-push-streamlit.yaml new file mode 100644 index 0000000..cf95261 --- /dev/null +++ b/.github/workflows/build-and-push-streamlit.yaml @@ -0,0 +1,49 @@ +name: Build & Push Streamlit + +on: + push: + branches: [ "main" ] + paths: + - "docker/streamlit/**" + - "src/ui/**" + + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/streamlit-ui + tags: | + type=raw,value=latest + + - name: Build & Push Custom Streamlit Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/streamlit/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/build-and-push-train.yaml b/.github/workflows/build-and-push-train.yaml new file mode 100644 index 0000000..687b660 --- /dev/null +++ b/.github/workflows/build-and-push-train.yaml @@ -0,0 +1,48 @@ +name: Build & Push Train Task + +on: + push: + branches: [ "main" ] + paths: + - "docker/train/**" + - "src/train/**" + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/train-task + tags: | + type=raw,value=latest + + - name: Build & Push Train Task Image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/train/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file