|
5 | 5 | tags: |
6 | 6 | - '*' |
7 | 7 |
|
8 | | -# Environment variables for ECR repository |
9 | | -env: |
10 | | - AWS_REGION: us-east-2 |
11 | | - ECR_REPOSITORY: osc-chat-frontend |
12 | | - |
13 | | -# Only build and push images, do not deploy |
14 | 8 | jobs: |
15 | | - build-and-push-dev: |
16 | | - name: Build and Push DEV Image |
17 | | - runs-on: ubuntu-latest |
18 | | - steps: |
19 | | - - name: Checkout code |
20 | | - uses: actions/checkout@v4 |
21 | | - |
22 | | - - name: Configure AWS credentials |
23 | | - uses: aws-actions/configure-aws-credentials@v4 |
24 | | - with: |
25 | | - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
26 | | - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
27 | | - aws-region: ${{ env.AWS_REGION }} |
28 | | - |
29 | | - - name: Login to Amazon ECR |
30 | | - id: login-ecr |
31 | | - uses: aws-actions/amazon-ecr-login@v2 |
32 | | - |
33 | | - - name: Set DEV image tag |
34 | | - id: set-tag |
35 | | - run: | |
36 | | - GIT_TAG=${GITHUB_REF#refs/tags/} |
37 | | - DEV_IMAGE_TAG="dev-${GIT_TAG}" |
38 | | - echo "DEV_IMAGE_TAG=${DEV_IMAGE_TAG}" >> $GITHUB_ENV |
39 | | - echo "dev_image_tag=${DEV_IMAGE_TAG}" >> $GITHUB_OUTPUT |
40 | | -
|
41 | | - - name: Build, tag, and push DEV image to Amazon ECR |
42 | | - id: build-dev-image |
43 | | - env: |
44 | | - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} |
45 | | - BANNER_CONTENT: ${{ vars.NEXT_PUBLIC_OSC_CHAT_BANNER_CONTENT }} |
46 | | - run: | |
47 | | - set -euo pipefail |
48 | | - echo "Building DEV image with tag: $DEV_IMAGE_TAG" |
49 | | - docker build \ |
50 | | - --build-arg NEXT_PUBLIC_KEYCLOAK_REALM=${{ vars.NEXT_PUBLIC_KEYCLOAK_REALM }} \ |
51 | | - --build-arg NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=${{ vars.NEXT_PUBLIC_KEYCLOAK_CLIENT_ID }} \ |
52 | | - --build-arg NEXT_PUBLIC_USE_OSC_CHAT_CONFIG=${{ vars.NEXT_PUBLIC_USE_OSC_CHAT_CONFIG }} \ |
53 | | - --build-arg NEXT_PUBLIC_OSC_CHAT_BANNER_CONTENT="$BANNER_CONTENT" \ |
54 | | - --build-arg NEXT_PUBLIC_POSTHOG_KEY=${{ secrets.NEXT_PUBLIC_POSTHOG_KEY }} \ |
55 | | - --build-arg NEXT_PUBLIC_POSTHOG_HOST=${{ vars.NEXT_PUBLIC_POSTHOG_HOST }} \ |
56 | | - -t $ECR_REGISTRY/$ECR_REPOSITORY:$DEV_IMAGE_TAG . |
57 | | - docker push $ECR_REGISTRY/$ECR_REPOSITORY:$DEV_IMAGE_TAG |
58 | | -
|
59 | | - - name: Output DEV image tag |
60 | | - run: | |
61 | | - echo "DEV image: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.DEV_IMAGE_TAG }}" |
62 | | -
|
63 | 9 | build-and-push-prod: |
64 | | - name: Build and Push PROD Image |
| 10 | + name: Build and Push Image |
65 | 11 | runs-on: ubuntu-latest |
66 | 12 | steps: |
67 | | - - name: Checkout code |
68 | | - uses: actions/checkout@v4 |
69 | | - |
70 | | - - name: Configure AWS credentials |
71 | | - uses: aws-actions/configure-aws-credentials@v4 |
72 | | - with: |
73 | | - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
74 | | - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
75 | | - aws-region: ${{ env.AWS_REGION }} |
76 | | - |
77 | | - - name: Login to Amazon ECR |
78 | | - id: login-ecr |
79 | | - uses: aws-actions/amazon-ecr-login@v2 |
80 | | - |
81 | 13 | - name: Set PROD image tag |
82 | 14 | id: set-tag |
83 | 15 | run: | |
84 | 16 | GIT_TAG=${GITHUB_REF#refs/tags/} |
85 | 17 | PROD_IMAGE_TAG="prod-${GIT_TAG}" |
86 | 18 | echo "PROD_IMAGE_TAG=${PROD_IMAGE_TAG}" >> $GITHUB_ENV |
87 | 19 | echo "prod_image_tag=${PROD_IMAGE_TAG}" >> $GITHUB_OUTPUT |
88 | | -
|
89 | | - - name: Build, tag, and push PROD image to Amazon ECR |
90 | | - id: build-prod-image |
91 | | - env: |
92 | | - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} |
93 | | - BANNER_CONTENT: ${{ vars.NEXT_PUBLIC_OSC_CHAT_BANNER_CONTENT }} |
94 | | - run: | |
95 | | - set -euo pipefail |
96 | | - echo "Building PROD image with tag: $PROD_IMAGE_TAG" |
97 | | - docker build \ |
98 | | - --build-arg NEXT_PUBLIC_KEYCLOAK_REALM=${{ vars.NEXT_PUBLIC_KEYCLOAK_REALM }} \ |
99 | | - --build-arg NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=${{ vars.NEXT_PUBLIC_KEYCLOAK_CLIENT_ID }} \ |
100 | | - --build-arg NEXT_PUBLIC_USE_OSC_CHAT_CONFIG=${{ vars.NEXT_PUBLIC_USE_OSC_CHAT_CONFIG }} \ |
101 | | - --build-arg NEXT_PUBLIC_OSC_CHAT_BANNER_CONTENT="$BANNER_CONTENT" \ |
102 | | - --build-arg NEXT_PUBLIC_POSTHOG_KEY=${{ secrets.PROD_NEXT_PUBLIC_POSTHOG_KEY }} \ |
103 | | - --build-arg NEXT_PUBLIC_POSTHOG_HOST=${{ vars.PROD_NEXT_PUBLIC_POSTHOG_HOST }} \ |
104 | | - -t $ECR_REGISTRY/$ECR_REPOSITORY:$PROD_IMAGE_TAG . |
105 | | - docker push $ECR_REGISTRY/$ECR_REPOSITORY:$PROD_IMAGE_TAG |
106 | | -
|
107 | | - - name: Output PROD image tag |
108 | | - run: | |
109 | | - echo "PROD image: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.PROD_IMAGE_TAG }}" |
| 20 | + - name: Login to docker registry |
| 21 | + uses: docker/login-action@v4 |
| 22 | + with: |
| 23 | + registry: docker-registry.osc.edu |
| 24 | + username: ${{ secrets.OSC_REGISTRY_ROBOT_OSC_USERNAME }} |
| 25 | + password: ${{ secrets.OSC_REGISTRY_ROBOT_OSC_TOKEN }} |
| 26 | + - name: Docker Build and Push |
| 27 | + uses: docker/build-push-action@v7 |
| 28 | + with: |
| 29 | + context: . |
| 30 | + push: true |
| 31 | + tags: docker-registry.osc.edu/osc/hpcgpt_frontend:$PROD_IMAGE_TAG |
| 32 | + build-args: | |
| 33 | + NEXT_PUBLIC_KEYCLOAK_URL=${{ vars.KEYCLOAK_URL }} |
| 34 | + NEXT_PUBLIC_KEYCLOAK_ISSUER_URL=${{ vars.ISSUER_URL }} |
| 35 | + NEXT_PUBLIC_USE_OSC_CHAT_CONFIG=${ vars.CHAT_CONFIG }} |
0 commit comments