@@ -2,11 +2,14 @@ name: Build Docker Image, Push to GHCR
2
2
3
3
on :
4
4
push :
5
+ # Publish HEAD of main branch as :latest image tag
5
6
branches : [ "main", "ohm" ]
7
+ # Publish semver tags as named image tags
8
+ tags : [ 'v*.*.*' ]
6
9
7
10
env :
8
11
REGISTRY : ghcr.io
9
- IMAGE_NAME : openhistoricalmap /osmcha-frontend
12
+ IMAGE_NAME : opnhistoricalmap /osmcha-frontend
10
13
REACT_APP_PAGE_SIZE : " 25"
11
14
REACT_APP_OVERPASS_BASE : " //overpass-api.openhistoricalmap.org/api/interpreter"
12
15
REACT_APP_MAPBOX_ACCESS_TOKEN : " pk.eyJ1Ijoib3Blbmhpc3RvcmljYWxtYXAiLCJhIjoiY202a3ZqcHN1MDJnYzJpcHhlczVqbXBuNiJ9.DvNrZEF1ISEluA9k-MSHtA"
@@ -22,54 +25,49 @@ jobs:
22
25
runs-on : ubuntu-latest
23
26
24
27
steps :
25
- - name : Checkout code
26
- uses : actions/checkout@v4
28
+ - name : Checkout code
29
+ uses : actions/checkout@v4
27
30
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
32
36
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 }}
35
44
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 }}
47
52
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