Skip to content

Commit 2153584

Browse files
authored
Merge pull request #2 from KaveTech/add-docker-and-gha
Add docker and gha
2 parents 3a36c4f + 117499e commit 2153584

2 files changed

Lines changed: 91 additions & 0 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Build and Push Intune2Snipe Job
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
env:
9+
GCP_REGION: 'europe-west1'
10+
GCP_PROJECT_ID: 'snipeit-pro-mj9n'
11+
CLOUD_RUN_JOB: 'intune2snipe-job'
12+
ARTIFACT_REGISTRY_REPO: 'mdm2snipe-registry'
13+
IMAGE_NAME: 'intune2snipe'
14+
15+
jobs:
16+
build-and-deploy:
17+
name: Build and Deploy Intune2Snipe Job
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v4
23+
24+
- name: Authenticate to Google Cloud
25+
uses: google-github-actions/auth@v2
26+
with:
27+
credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY_PRO }}
28+
29+
- name: Setup Google Cloud SDK
30+
uses: google-github-actions/setup-gcloud@v2
31+
with:
32+
project_id: ${{ env.GCP_PROJECT_ID }}
33+
34+
- name: Configure Docker for Artifact Registry
35+
run: |
36+
gcloud auth configure-docker ${{ env.GCP_REGION }}-docker.pkg.dev --quiet
37+
38+
- name: Build Docker image
39+
run: |
40+
echo "🔨 Building Docker image for Intune2Snipe Job..."
41+
docker build \
42+
-t ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \
43+
-t ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:latest \
44+
intune2snipe
45+
46+
- name: Push Docker image to Artifact Registry
47+
run: |
48+
echo "📤 Pushing image to Artifact Registry..."
49+
docker push ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
50+
docker push ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:latest
51+
52+
- name: Update Cloud Run Job
53+
run: |
54+
echo "🚀 Updating Cloud Run Job..."
55+
gcloud run jobs update ${{ env.CLOUD_RUN_JOB }} \
56+
--image ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \
57+
--region ${{ env.GCP_REGION }} \
58+
--project ${{ env.GCP_PROJECT_ID }}
59+
60+
- name: Get Job Details
61+
id: get-job-details
62+
run: |
63+
JOB_URI=$(gcloud run jobs describe ${{ env.CLOUD_RUN_JOB }} \
64+
--region ${{ env.GCP_REGION }} \
65+
--format 'value(metadata.name)' \
66+
--project ${{ env.GCP_PROJECT_ID }})
67+
echo "job_name=$JOB_URI" >> $GITHUB_OUTPUT
68+
69+
- name: Deployment Summary
70+
run: |
71+
echo "✅ Cloud Run Job updated successfully!"
72+
echo "🔖 Environment: production"
73+
echo "📦 Project ID: ${{ env.GCP_PROJECT_ID }}"
74+
echo "🐳 Image: ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
75+
echo "⚙️ Cloud Run Job: ${{ env.CLOUD_RUN_JOB }}"
76+
echo "🌍 Region: ${{ env.GCP_REGION }}"
77+
echo "📝 Job Name: ${{ steps.get-job-details.outputs.job_name }}"
78+
echo ""
79+
echo "To execute the job manually, run:"
80+
echo "gcloud run jobs execute ${{ env.CLOUD_RUN_JOB }} --region ${{ env.GCP_REGION }} --project ${{ env.GCP_PROJECT_ID }}"

Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM python:3.11-slim
2+
3+
WORKDIR /app
4+
5+
COPY requirements.txt .
6+
7+
RUN pip install --no-cache-dir -r requirements.txt
8+
9+
COPY . .
10+
11+
CMD ["python", "app.py"]

0 commit comments

Comments
 (0)