1+ name : CREATOR workflow CI
2+
3+ on :
4+ push :
5+ branches : [ "master" ]
6+ pull_request :
7+ branches : [ "master" ]
8+
9+ permissions :
10+ contents : read
11+ packages : write
12+
13+ jobs :
14+ creator-checker :
15+ name : Execute CREATOR Checker
16+
17+ runs-on : ubuntu-latest
18+
19+ strategy :
20+ matrix :
21+ node-version : [20.x]
22+
23+ steps :
24+ - uses : actions/checkout@v4
25+ - name : Use Node.js ${{ matrix.node-version }}
26+ uses : actions/setup-node@v4
27+ with :
28+ node-version : ${{ matrix.node-version }}
29+ cache : ' npm'
30+ - name : Install dependencies
31+ run : npm ci
32+ - run : npm run build --if-present
33+ - run : npm run test-creator-node
34+
35+ build-creator-cl :
36+ name : Build creator_cl Docker Image
37+ needs : creator-checker
38+ if : github.event_name != 'pull_request'
39+
40+ runs-on : ubuntu-latest
41+
42+ steps :
43+ - name : Free Disk Space (Ubuntu)
44+ uses : jlumbroso/free-disk-space@main
45+ with :
46+ tool-cache : false
47+ android : true
48+ dotnet : true
49+ haskell : true
50+ large-packages : true
51+ docker-images : false
52+ swap-storage : true
53+ - uses : actions/checkout@v4
54+ - name : Set up QEMU
55+ uses : docker/setup-qemu-action@v3
56+ - name : Set up Docker Buildx
57+ uses : docker/setup-buildx-action@v3
58+ - name : Login to GitHub Package Registry
59+ run : echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
60+ - name : Build & Push Docker image
61+ run : cd ./dockers/command_line/ && docker buildx build -t ghcr.io/${{ github.repository_owner }}/creator_cl:${GITHUB_SHA} -t ghcr.io/${{ github.repository_owner }}/creator_cl -f ./Dockerfile --push --platform=linux/amd64,linux/arm64,linux/arm/v7 .
62+
63+ push-creator-cl :
64+ name : Push creator_cl Docker Image
65+ needs : build-creator-cl
66+ if : github.event_name != 'pull_request' && github.repository_owner == 'creatorsim'
67+
68+ runs-on : ubuntu-latest
69+
70+ steps :
71+ - name : Login to Docker Hub
72+ env :
73+ DH_TOKEN : ${{ secrets.DOCKER_HUB_PASSWORD }}
74+ run : docker login -u creatorsim -p ${DH_TOKEN}
75+ - name : Re-tag & Push Docker Image to Docker Hub
76+ run : |
77+ chmod +r $HOME/.docker/config.json
78+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_cl:${GITHUB_SHA} docker.io/creatorsim/creator_cl:${GITHUB_SHA}
79+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_cl docker.io/creatorsim/creator_cl
80+
81+ build-creator-gateway :
82+ name : Build creator_gateway Docker Image
83+ needs : creator-checker
84+ if : github.event_name != 'pull_request'
85+
86+ runs-on : ubuntu-latest
87+
88+ steps :
89+ - name : Free Disk Space (Ubuntu)
90+ uses : jlumbroso/free-disk-space@main
91+ with :
92+ tool-cache : false
93+ android : true
94+ dotnet : true
95+ haskell : true
96+ large-packages : true
97+ docker-images : false
98+ swap-storage : true
99+ - uses : actions/checkout@v4
100+ - name : Set up QEMU
101+ uses : docker/setup-qemu-action@v3
102+ - name : Set up Docker Buildx
103+ uses : docker/setup-buildx-action@v3
104+ - name : Login to GitHub Package Registry
105+ run : echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
106+ - name : Build & Push Docker image
107+ run : cd ./dockers/gateway/ && docker buildx build -t ghcr.io/${{ github.repository_owner }}/creator_gateway:${GITHUB_SHA} -t ghcr.io/${{ github.repository_owner }}/creator_gateway -f ./Dockerfile --push --platform=linux/amd64,linux/arm64,linux/arm/v7 .
108+
109+ push-creator-gateway :
110+ name : Push creator_gateway Docker Image
111+ needs : build-creator-gateway
112+ if : github.event_name != 'pull_request' && github.repository_owner == 'creatorsim'
113+
114+ runs-on : ubuntu-latest
115+
116+ steps :
117+ - name : Login to Docker Hub
118+ env :
119+ DH_TOKEN : ${{ secrets.DOCKER_HUB_PASSWORD }}
120+ run : docker login -u creatorsim -p ${DH_TOKEN}
121+ - name : Re-tag & Push Docker Image to Docker Hub
122+ run : |
123+ chmod +r $HOME/.docker/config.json
124+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_gateway:${GITHUB_SHA} docker.io/creatorsim/creator_gateway:${GITHUB_SHA}
125+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_gateway docker.io/creatorsim/creator_gateway
126+
127+ build-creator-hw-lab :
128+ name : Build creator_remote_lab Docker Image
129+ needs : creator-checker
130+ if : github.event_name != 'pull_request'
131+
132+ runs-on : ubuntu-latest
133+
134+ steps :
135+ - name : Free Disk Space (Ubuntu)
136+ uses : jlumbroso/free-disk-space@main
137+ with :
138+ tool-cache : false
139+ android : true
140+ dotnet : true
141+ haskell : true
142+ large-packages : true
143+ docker-images : false
144+ swap-storage : true
145+ - uses : actions/checkout@v4
146+ - name : Set up QEMU
147+ uses : docker/setup-qemu-action@v3
148+ - name : Set up Docker Buildx
149+ uses : docker/setup-buildx-action@v3
150+ - name : Login to GitHub Package Registry
151+ run : echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
152+ - name : Build & Push Docker image
153+ run : cd ./dockers/remote_lab/ && docker buildx build -t ghcr.io/${{ github.repository_owner }}/creator_remote_lab:${GITHUB_SHA} -t ghcr.io/${{ github.repository_owner }}/creator_remote_lab -f ./Dockerfile --push --platform=linux/amd64,linux/arm64,linux/arm/v7 .
154+
155+ push-creator-hw-lab :
156+ name : Push creator_remote_lab Docker Image
157+ needs : build-creator-hw-lab
158+ if : github.event_name != 'pull_request' && github.repository_owner == 'creatorsim'
159+
160+ runs-on : ubuntu-latest
161+
162+ steps :
163+ - name : Login to Docker Hub
164+ env :
165+ DH_TOKEN : ${{ secrets.DOCKER_HUB_PASSWORD }}
166+ run : docker login -u creatorsim -p ${DH_TOKEN}
167+ - name : Re-tag & Push Docker Image to Docker Hub
168+ run : |
169+ chmod +r $HOME/.docker/config.json
170+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_remote_lab:${GITHUB_SHA} docker.io/creatorsim/creator_remote_lab:${GITHUB_SHA}
171+ docker container run --rm --network host -v regctl-conf:/home/appuser/.regctl/ -v $HOME/.docker/config.json:/home/appuser/.docker/config.json regclient/regctl:v0.3.9 image copy ghcr.io/${{ github.repository_owner }}/creator_remote_lab docker.io/creatorsim/creator_remote_lab
0 commit comments