-
Notifications
You must be signed in to change notification settings - Fork 6
150 lines (130 loc) · 4.46 KB
/
main_push.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
name: Deploy to GitHub Pages, push unstable Docker image to GHCR
on:
# Runs on push to main branch
push:
branches:
- main
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
IMAGE_NAME: ghcr.io/rdflib/prez-ui
# Grants permissions for GITHUB_TOKEN
permissions:
contents: read
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
packages: write # to push to GHCR package
jobs:
# Build & upload artifact for pages
build_pages:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: latest
cache: npm
- name: Install and build
run: |
npm ci
CI=false npm run build
env:
VITE_SIDENAV: ${{ secrets.VITE_SIDENAV }}
VITE_ENABLED_PREZS: ${{ secrets.VITE_ENABLED_PREZS }}
VITE_API_BASE_URL: ${{ secrets.VITE_API_BASE_URL }}
VITE_MAP_SEARCH_PROPS_FC_LABEL: ${{ secrets.VITE_MAP_SEARCH_PROPS_FC_LABEL }}
VITE_MAP_SEARCH_PROPS_DS_LABEL: ${{ secrets.VITE_MAP_SEARCH_PROPS_DS_LABEL }}
GH_PAGES_DEMO: true
- name: Setup Pages
uses: actions/configure-pages@v2
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload build directory
path: "dist"
# Deploy to github pages
deploy_pages:
# Add a dependency to the build job
needs: build_pages
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
# build & push Docker image
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
# Required by WyriHaximus/github-action-get-previous-tag
fetch-depth: 0
- name: Get latest tag
id: latest-tag
uses: WyriHaximus/github-action-get-previous-tag@v1
with:
fallback: "0.1.0"
- name: Tag starts with v
id: tag-starts-with-v
if: ${{ startsWith(steps.latest-tag.outputs.tag, 'v') }}
uses: mad9000/actions-find-and-replace-string@4
with:
source: ${{ steps.latest-tag.outputs.tag }}
find: "v"
replace: ""
- name: Tag value
id: tag-value
uses: haya14busa/action-cond@v1
with:
cond: ${{ startsWith(steps.latest-tag.outputs.tag, 'v') }}
if_true: ${{ steps.tag-starts-with-v.outputs.value }}
if_false: ${{ steps.latest-tag.outputs.tag }}
- name: Get next semver patch version
id: patch
uses: "WyriHaximus/github-action-next-semvers@v1"
with:
version: ${{ steps.tag-value.outputs.value }}
- name: Get git commits since last tag
id: commitscount
run: echo "value=$(git rev-list `git rev-list --tags --no-walk --max-count=1`..HEAD --count)" >> $GITHUB_OUTPUT
- name: Get git commit hash
id: commit-hash
uses: docker/metadata-action@v4
with:
images: ${{ env.IMAGE_NAME }}
tags: type=sha
- name: Rename git commit hash
id: hash
uses: mad9000/actions-find-and-replace-string@4
with:
source: ${{ steps.commit-hash.outputs.version }}
find: "sha-"
replace: dev.${{ steps.commitscount.outputs.value }}.
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up and use Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ steps.patch.outputs.patch }}-${{ steps.hash.outputs.value }}
${{ env.IMAGE_NAME }}:dev
# Set provenance to false due to issue documented here: https://github.com/docker/build-push-action/issues/778
provenance: false
platforms: linux/amd64,linux/arm64