-
Notifications
You must be signed in to change notification settings - Fork 7
154 lines (141 loc) · 4.71 KB
/
ci.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
151
152
153
154
name: CI - CD
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
validations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- uses: bahmutov/npm-install@v1
- name: Build back
run: cd api && yarn build
- name: Fullcheck
run: yarn fullcheck
check_if_version_upgraded:
name: Check if version upgrade
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs: validations
outputs:
from_version: ${{ steps.step1.outputs.from_version }}
to_version: ${{ steps.step1.outputs.to_version }}
is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }}
steps:
- uses: garronej/[email protected]
id: step1
with:
action_name: is_package_json_version_upgraded
# create_github_release:
# runs-on: ubuntu-latest
# # We create a release only if the version have been upgraded and we are on a default branch
# # PR on the default branch can release beta but not real release
# if: |
# needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true' &&
# (
# github.event_name == 'push' ||
# needs.check_if_version_upgraded.outputs.is_release_beta == 'true'
# )
# needs:
# - check_if_version_upgraded
# steps:
# - uses: softprops/action-gh-release@v1
# with:
# name: Release v${{ needs.check_if_version_upgraded.outputs.to_version }}
# tag_name: v${{ needs.check_if_version_upgraded.outputs.to_version }}
# target_commitish: ${{ github.head_ref || github.ref }}
# generate_release_notes: true
# draft: false
# prerelease: ${{ needs.check_if_version_upgraded.outputs.is_release_beta == 'true' }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
docker:
runs-on: ubuntu-latest
# needs:
# - check_if_version_upgraded
# - create_github_release
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Computing Docker image tags
id: step1
env:
# IS_UPGRADED_VERSION: ${{ needs.check_if_version_upgraded.outputs.is_upgraded_version }}
IS_UPGRADED_VERSION: true
# TO_VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
TO_VERSION: test1
run: |
OUT_API=codegouvfr/sill-api:$TO_VERSION
OUT_API=$(echo "$OUT_API" | awk '{print tolower($0)}')
echo ::set-output name=docker_api_tags::$OUT_API
OUT_WEB=codegouvfr/sill-web:$TO_VERSION
OUT_WEB=$(echo "$OUT_WEB" | awk '{print tolower($0)}')
echo ::set-output name=docker_web_tags::$OUT_WEB
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: api
tags: ${{ steps.step1.outputs.docker_api_tags }}
platforms: linux/amd64,linux/arm64
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: web
tags: ${{ steps.step1.outputs.docker_web_tags }}
platforms: linux/amd64,linux/arm64
# poke_gitops:
# runs-on: ubuntu-latest
# needs:
# - create_github_release
# - publish_on_npm
# - docker
# steps:
# - uses: peter-evans/repository-dispatch@v1
# with:
# token: ${{ secrets.PAT_PRIVATE_REPO_DISPATCH }}
# event-type: update_sill_api
# repository: codegouvfr/paris-sspcloud
# build_docker_images:
# # needs:
# # - check_if_version_upgraded
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - uses: docker/setup-buildx-action@v3
# - uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Build API Docker image
# run: |
# docker build . --target api --tag api:latest
# docker save api:latest -o api.tar
# - name: Build Web Docker image
# run: |
# docker build . --target web --tag web:latest
# docker save web:latest -o web.tar
# - name: Upload API Image as Artifact
# uses: actions/upload-artifact@v4
# with:
# name: api-image
# path: api.tar
# - name: Upload Web Image as Artifact
# uses: actions/upload-artifact@v4
# with:
# name: web-image
# path: web.tar