-
Notifications
You must be signed in to change notification settings - Fork 14
130 lines (117 loc) · 4.07 KB
/
flowforge-container.yml
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
name: Build Flowforge container
on:
workflow_dispatch:
inputs:
flowforge_release_name:
description: 'flowforge package version'
required: false
default: 'nightly'
flowforge_ref:
description: 'flowforge package ref'
required: false
schedule:
- cron: '30 5 * * *'
push:
branches:
- 'feat-*'
pull_request:
branches:
- main
jobs:
build:
if: true
uses: flowforge/github-actions-workflows/.github/workflows/build_container_image.yml@feat-container-build
with:
image_name: 'forge-k8s'
package_dependencies: |
@flowforge/flowforge
@flowforge/kubernetes
build_context: 'flowforge-container'
npm_registry_url: ${{ vars.PRIVATE_NPM_REGISTRY_URL }}
push_image: false
secrets:
npm_registry_auth_token: ${{ secrets.GITHUB_TOKEN }}
directBuild:
runs-on: ubuntu-latest
if: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v2
- name: Set release name and image tag
# if: ${{ github.event_name == 'schedule' }}
run: |
echo "release_name=nightly" >> $GITHUB_ENV
echo "npm_registry=https://npm.pkg.github.com" >> $GITHUB_ENV
echo "image_tag=nightly-$(date +%Y%m%d%H%m%S)" >> $GITHUB_ENV
- name: "Set dependencies versions"
run: |
cat flowforge-container/package.json | jq '.dependencies["@flowforge/flowforge"] = "${{ env.release_name }}" | .dependencies["@flowforge/kubernetes"] = "${{ env.release_name }}" ' > flowforge-container/package.json-patched
mv flowforge-container/package.json-patched flowforge-container/package.json
# - name: Configure AWS credentials
# if: ${{ env.release_name == 'nightly' }}
# uses: aws-actions/configure-aws-credentials@v2
# with:
# aws-access-key-id: ${{ secrets.STAGING_AWS_ID }}
# aws-secret-access-key: ${{ secrets.STAGING_AWS_KEY }}
# aws-region: eu-west-1
# - name: "Login to Staging ECR"
# if: ${{ env.release_name == 'nightly' }}
# id: login-ecr
# uses: aws-actions/amazon-ecr-login@v1
# - name: Get image metadata
# id: image_metadata
# uses: docker/metadata-action@v4
# with:
# images: |
# ${{ steps.login-ecr.outputs.registry }}/flowforge/forge-k8s
# tags: |
# type=raw,value=${{ env.image_tag }}
# flavor: |
# latest=false
- name: Build container image
uses: docker/build-push-action@v4
with:
context: flowforge-container
file: flowforge-container/Dockerfile
tags: "forge-k8s:${{ env.image_tag }}"
platforms: |
linux/amd64
linux/arm64
build-args: |
REGISTRY=${{ env.npm_registry }}
REGISTRY_TOKEN=${{ secrets.GITHUB_TOKEN }}
push: false
# - name: Build and push Forge container
# uses: docker/[email protected]
# with:
# context: flowforge-container
# file: flowforge-container/Dockerfile
# tags: ${{ steps.image_metadata.outputs.tags }}
# platforms: |
# linux/amd64
# linux/arm64
# build-args: |
# REGISTRY=npm.pkg.github.com
# REGISTRY_TOKEN=${{ secrets.GITHUB_TOKEN }}
# push: true
dispatch:
runs-on: ubuntu-latest
needs: [build]
if: false
steps:
- name: Generate a token
id: generate_token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.GH_BOT_APP_ID }}
private_key: ${{ secrets.GH_BOT_APP_KEY }}
- name: Trigger cloud deployment
uses: benc-uk/workflow-dispatch@v1
with:
workflow: deploy.yml
repo: flowforge/CloudProject
ref: feat-deployment-poc
token: ${{ steps.generate_token.outputs.token }}
inputs: '{"flowforge_image_tag": "${{ env.image_tag }}"}'