From 989038ab570b43a8743ad0385f9daf9d50bf2bb1 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Fri, 11 Mar 2022 18:08:03 +0100 Subject: [PATCH] Updated README.md with info to build .exe file --- .dockerignore | 13 +++++++------ .github/workflows/build-docker-image.yml | 3 ++- .github/workflows/deploy-on-server.yml | 21 +++++++++++++++++++++ .gitignore | 2 ++ README.md | 15 +++++++++++++-- build/icon.png | Bin 0 -> 38499 bytes package-lock.json | 4 ++-- package.json | 4 ++-- 8 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/deploy-on-server.yml create mode 100644 build/icon.png diff --git a/.dockerignore b/.dockerignore index afa357b..57abcc0 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,9 +1,10 @@ -/.git -/.github -/.idea -/dist -/node_modules -/out +/.git/ +/.github/ +/.idea/ +/build/ +/dist/ +/node_modules/ +/out/ /.gitignore /main.js *.md diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 1705cc0..bf06fdd 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -17,8 +17,9 @@ jobs: with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Push to Docker Hub uses: docker/build-push-action@v2 with: push: true - tags: alexandrevryghem/guido-desktop:latest + tags: ${{ secrets.DOCKER_USERNAME }}/guido-desktop:latest diff --git a/.github/workflows/deploy-on-server.yml b/.github/workflows/deploy-on-server.yml new file mode 100644 index 0000000..0bf562b --- /dev/null +++ b/.github/workflows/deploy-on-server.yml @@ -0,0 +1,21 @@ +--- +name: Deploy on Server +on: + workflow_run: + workflows: [ "Build Docker image" ] + types: + - completed +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Restart Development website 🚀 + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + port: ${{ secrets.PORT }} + username: ${{ secrets.USERNAME }} + key: ${{ secrets.PRIVATE_KEY }} + script: | + /usr/local/bin/docker pull ${{ secrets.DOCKER_USERNAME }}/guido-desktop:latest + /usr/local/bin/docker-compose -f ${{ secrets.DOCKER_COMPOSE_PATH }}/docker-compose.yml up -d diff --git a/.gitignore b/.gitignore index 9129c1d..c31b49f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # See http://help.github.com/ignore-files/ for more about ignoring files. # Compiled output +/build +!build/icon.png /dist /tmp /out-tsc diff --git a/README.md b/README.md index 3fc1d32..a74f731 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Deploy on GitHub pages](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/deploy-to-github-pages.yml/badge.svg?branch=main)](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/deploy-to-github-pages.yml) [![Build Docker image](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/build-docker-image.yml/badge.svg?branch=main)](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/build-docker-image.yml) +[![Deploy on Server](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/deploy-on-server.yml/badge.svg?branch=main)](https://github.com/ucll-ap-guide/guideApp-desktop/actions/workflows/deploy-on-server.yml) ## Requirements @@ -45,10 +46,20 @@ inside the `docker-compose.yml` file. This action is automatically triggered when new code is pushed on `main` and will update the GitHub page, this doesn't require any additional setup. -### Build Docker image +### Build & push Docker image This action is automatically triggered when new code is pushed on `main`, this will automatically build a Docker image and push it to your DockerHub repository. This image can be used to run the project on a production server. ⚠ Don't forget to create the `DOCKER_USERNAME` and `DOCKER_PASSWORD` secrets in the repository -`Settings>Secrets>Actions`. The `DOCKER_PASSWORD` can also be an Access Token from DockerHub +`Settings>Secrets>Actions`. The `DOCKER_PASSWORD` can also be an Access Token from DockerHub. + +### Deploy on production server + +This action is automatically triggered when the `Build Docker image` action is completed. Before using it make sure that +you copy the docker-compose.yml on your server and edit it see [above](#build-docker-image). + +⚠ This action requires you to also create the `HOST`, `PORT`, `USERNAME` and `PRIVATE_KEY` secrets in +`Settings>Secrets>Actions`. Otherwise, the GitHub action won't be able to sign in on your server (Make sure your user +has the right permissions to execute the `docker` and `docker-compose` command). The last secret you need to create is +`DOCKER_COMPOSE_PATH` with the location of you docker-compose file on your server (without tailing `/`). diff --git a/build/icon.png b/build/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6196442d29fe3344d9e51415a107e306e773c9 GIT binary patch literal 38499 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 XKWYy5#)L?ECsOuToNQ_@`8@d#O+70k literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 6649c2b..e931f75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "guide-app-desktop", - "version": "0.0.0", + "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "guide-app-desktop", - "version": "0.0.0", + "version": "1.0.0", "dependencies": { "@angular/animations": "~13.2.5", "@angular/common": "~13.2.5", diff --git a/package.json b/package.json index 099dd22..2a5f554 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "guide-app-desktop", - "authors": "Alexandre Vryghem & Mathias Van den Cruijce", + "author": "Alexandre Vryghem & Mathias Van den Cruijce", "description": "D3 based floorplan builder", - "version": "0.0.0", + "version": "1.0.0", "main": "main.js", "scripts": { "ng": "ng",