-
Notifications
You must be signed in to change notification settings - Fork 2
52 lines (47 loc) · 1.81 KB
/
ci.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
name: CI jobs
on:
push:
jobs:
blog:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install software
run: |
sudo apt update
# sudo apt install -y chromium-browser firefox
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 11.0.13
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Start & wait docker-compose environment
run: |
(cd docker; docker-compose up -d)
- name: Build with Maven
run: |
DATE_VERSION=`date +%Y%m%d.%H.%M`
rm ~/.m2/settings.xml
./mvnw -U -Drevision=$DATE_VERSION -P frontend -P docker -P jacoco clean install
(cd docker; docker-compose down)
./mvnw -U -Drevision=$DATE_VERSION -pl deploy-test -P deploy-test clean test
rm -rf ~/.m2/repository/com/github/nkonev/blog
rm -rf ./frontend/node_modules/.cache
bash <(curl -s https://codecov.io/bash)
- name: Deploy
if: github.ref == 'refs/heads/master'
run: |
mkdir -p ~/.ssh && openssl aes-256-cbc -K ${{ secrets.EncryptedKey }} -iv ${{ secrets.EncryptedIv }} -in ./.secret_keys/id_rsa.enc -out ~/.ssh/id_rsa -d
chmod 600 ~/.ssh/id_rsa
echo "Will login to docker" &&
docker login -u="nkonev" -p="${{ secrets.DockerPassword }}" &&
echo "Will push docker image" &&
docker push nkonev/blog:latest &&
echo "Will deploy blog" &&
ssh -o "BatchMode yes" -o StrictHostKeyChecking=no -q ${{ secrets.ConnectLine }} ${{ secrets.BlogUpdateCommand }}