Skip to content

Commit 1c3c476

Browse files
committed
Build image with env vars
1 parent 115d1d7 commit 1c3c476

File tree

1 file changed

+46
-48
lines changed

1 file changed

+46
-48
lines changed

.github/workflows/docker-publish.yaml

+46-48
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ name: Build Docker Image, Push to GHCR
22

33
on:
44
push:
5+
# Publish HEAD of main branch as :latest image tag
56
branches: [ "main", "ohm" ]
7+
# Publish semver tags as named image tags
8+
tags: [ 'v*.*.*' ]
69

710
env:
811
REGISTRY: ghcr.io
9-
IMAGE_NAME: openhistoricalmap/osmcha-frontend
12+
IMAGE_NAME: opnhistoricalmap/osmcha-frontend
1013
REACT_APP_PAGE_SIZE: "25"
1114
REACT_APP_OVERPASS_BASE: "//overpass-api.openhistoricalmap.org/api/interpreter"
1215
REACT_APP_MAPBOX_ACCESS_TOKEN: "pk.eyJ1Ijoib3Blbmhpc3RvcmljYWxtYXAiLCJhIjoiY202a3ZqcHN1MDJnYzJpcHhlczVqbXBuNiJ9.DvNrZEF1ISEluA9k-MSHtA"
@@ -22,54 +25,49 @@ jobs:
2225
runs-on: ubuntu-latest
2326

2427
steps:
25-
- name: Checkout code
26-
uses: actions/checkout@v4
28+
- name: Checkout code
29+
uses: actions/checkout@v4
2730

28-
- name: Set up Node.js
29-
uses: actions/setup-node@v4
30-
with:
31-
node-version: 20
31+
# Enable BuildKit for docker builds. This enables building
32+
# multi-platform images and exporting the layer cache
33+
# https://github.com/docker/setup-buildx-action
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v3
3236

33-
- name: Install dependencies
34-
run: yarn install
37+
# https://github.com/docker/login-action
38+
- name: Login to Registry ${{ env.REGISTRY }}
39+
uses: docker/login-action@v3
40+
with:
41+
registry: ${{ env.REGISTRY }}
42+
username: ${{ github.actor }}
43+
password: ${{ secrets.GITHUB_TOKEN }}
3544

36-
- name: Build React App with Environment Variables
37-
run: |
38-
echo "REACT_APP_PAGE_SIZE=${{ env.REACT_APP_PAGE_SIZE }}" >> .env
39-
echo "REACT_APP_OVERPASS_BASE=${{ env.REACT_APP_OVERPASS_BASE }}" >> .env
40-
echo "REACT_APP_MAPBOX_ACCESS_TOKEN=${{ env.REACT_APP_MAPBOX_ACCESS_TOKEN }}" >> .env
41-
echo "REACT_APP_OSM_URL=${{ env.REACT_APP_OSM_URL }}" >> .env
42-
echo "REACT_APP_OSM_API=${{ env.REACT_APP_OSM_API }}" >> .env
43-
echo "REACT_APP_NOMINATIM_URL=${{ env.REACT_APP_NOMINATIM_URL }}" >> .env
44-
echo "REACT_APP_DEFAULT_FROM_DATE=${{ env.REACT_APP_DEFAULT_FROM_DATE }}" >> .env
45-
echo "REACT_APP_DEFAULT_TO_DATE=${{ env.REACT_APP_DEFAULT_TO_DATE }}" >> .env
46-
echo "REACT_APP_DISABLE_REAL_CHANGESETS=${{ env.REACT_APP_DISABLE_REAL_CHANGESETS }}" >> .env
45+
# Extract metadata (tags, labels) for Docker
46+
# https://github.com/docker/metadata-action
47+
- name: Extract Docker metadata
48+
id: meta
49+
uses: docker/metadata-action@v5
50+
with:
51+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
4752

48-
cat .env # Debugging: check if env variables are set correctly
49-
yarn build
50-
51-
- name: Set up Docker Buildx
52-
uses: docker/setup-buildx-action@v3
53-
54-
- name: Login to Registry
55-
uses: docker/login-action@v3
56-
with:
57-
registry: ${{ env.REGISTRY }}
58-
username: ${{ github.actor }}
59-
password: ${{ secrets.GITHUB_TOKEN }}
60-
61-
- name: Extract Docker metadata
62-
id: meta
63-
uses: docker/metadata-action@v5
64-
with:
65-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
66-
67-
- name: Build and push Docker image
68-
uses: docker/build-push-action@v5
69-
with:
70-
context: .
71-
push: true
72-
tags: ${{ steps.meta.outputs.tags }}
73-
labels: ${{ steps.meta.outputs.labels }}
74-
cache-from: type=gha
75-
cache-to: type=gha,mode=max
53+
# https://github.com/docker/build-push-action
54+
- name: Build and push Docker image
55+
uses: docker/build-push-action@v5
56+
with:
57+
context: .
58+
push: true
59+
tags: ${{ steps.meta.outputs.tags }}
60+
labels: ${{ steps.meta.outputs.labels }}
61+
cache-from: type=gha
62+
cache-to: type=gha,mode=max
63+
build-args: |
64+
REACT_APP_PAGE_SIZE=${{ env.REACT_APP_PAGE_SIZE }}
65+
REACT_APP_OVERPASS_BASE=${{ env.REACT_APP_OVERPASS_BASE }}
66+
REACT_APP_MAPBOX_ACCESS_TOKEN=${{ env.REACT_APP_MAPBOX_ACCESS_TOKEN }}
67+
REACT_APP_OSM_URL=${{ env.REACT_APP_OSM_URL }}
68+
REACT_APP_OSM_API=${{ env.REACT_APP_OSM_API }}
69+
REACT_APP_NOMINATIM_URL=${{ env.REACT_APP_NOMINATIM_URL }}
70+
REACT_APP_DEFAULT_FROM_DATE=${{ env.REACT_APP_DEFAULT_FROM_DATE }}
71+
REACT_APP_DEFAULT_TO_DATE=${{ env.REACT_APP_DEFAULT_TO_DATE }}
72+
REACT_APP_DISABLE_REAL_CHANGESETS=${{ env.REACT_APP_DISABLE_REAL_CHANGESETS }}
73+

0 commit comments

Comments
 (0)