@@ -2,40 +2,48 @@ name: Build & Deploy
22on :
33 push :
44 branches :
5- - master
5+ - master
6+
7+ env :
8+ REGISTRY : ghcr.io
9+ IMAGE_NAME : ${{ github.repository }}
10+
611jobs :
712 docker :
813 runs-on : ubuntu-latest
14+ permissions :
15+ contents : read
16+ packages : write
917 steps :
10- - name : Build container
11- id : docker_build
12- uses : docker/build-push-action@v2
13- with :
14- load : true
15- tags : insektionen/control-app:latest
16- build-args : |
17- "ARG_USERNAME=${{secrets.DB_USERNAME}}"
18- "ARG_PASSWORD=${{secrets.DB_PASSWORD}}"
19- "ARG_CLUSTER=${{secrets.DB_CLUSTER}}"
20- "ARG_DATABASE= ${{secrets.DB_DATABASE}}"
21- "ARG_API_URL=${{secrets.NEXT_PUBLIC_API_URL}}"
22- "ARG_MQTT_URL=${{secrets.MQTT_URL}}"
23- - name : Export container
24- run : docker save insektionen/control-app:latest | gzip > control-app_latest.tar.gz
25- - name : Copy to Server
26- uses : appleboy/scp-action@master
27- with :
28- host : ${{ secrets.SSH_HOST }}
29- username : ${{ secrets.SSH_USERNAME }}
30- key : ${{ secrets.SSH_KEY }}
31- port : 22
32- source : " control-app_latest.tar.gz "
33- target : " ~/ "
34- - name : Import and start on Server
35- uses : appleboy/ssh-action@master
36- with :
37- host : ${{ secrets.SSH_HOST }}
38- username : ${{ secrets.SSH_USERNAME }}
39- key : ${{ secrets.SSH_KEY }}
40- port : 22
41- script : docker load < control-app_latest.tar.gz && cd control-app && docker- compose up -d
18+ - name : Login to GitHub Container Registry
19+ uses : docker/login-action@v3
20+ with :
21+ registry : ghcr.io
22+ username : ${{ github.actor }}
23+ password : ${{ secrets.GITHUB_TOKEN }}
24+ - name : Extract metadata (tags, labels) for Docker
25+ id : meta
26+ uses : docker/metadata-action@v5
27+ with :
28+ images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
29+ - name : Build container
30+ uses : docker/build-push-action@v5
31+ with :
32+ push : true
33+ tags : ${{ steps.meta.outputs.tags }}
34+ labels : ${{ steps.meta.outputs.labels }}
35+ build-args : |
36+ "ARG_USERNAME= ${{secrets.DB_USERNAME}}"
37+ "ARG_PASSWORD= ${{secrets.DB_PASSWORD}}"
38+ "ARG_CLUSTER= ${{secrets.DB_CLUSTER}}"
39+ "ARG_DATABASE=${{secrets.DB_DATABASE}}"
40+ "ARG_API_URL=${{secrets.NEXT_PUBLIC_API_URL}} "
41+ "ARG_MQTT_URL=${{secrets.MQTT_URL}} "
42+ # - name: Import and start on Server
43+ # uses: appleboy/ssh-action@master
44+ # with:
45+ # host: ${{ secrets.SSH_HOST }}
46+ # username: ${{ secrets.SSH_USERNAME }}
47+ # key: ${{ secrets.SSH_KEY }}
48+ # port: 22
49+ # script: cd control-app && docker compose up -d --pull
0 commit comments