· 4 years ago · Aug 24, 2021, 06:56 PM
1name: Build and deploy proxy
2
3on: [ push, workflow_dispatch ]
4
5env:
6 ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
7 PACKAGE_REGISTRY_USERNAME: ${{ secrets.PACKAGE_REGISTRY_USERNAME }}
8 PACKAGE_REGISTRY_TOKEN: ${{ secrets.PACKAGE_REGISTRY_TOKEN }}
9 app_name: minecraft-proxy
10 image_url: ghcr.io/divine-craft/minecraft-proxy
11
12
13jobs:
14 build:
15 runs-on: ubuntu-latest
16 steps:
17 - uses: actions/checkout@v2
18 - name: Set up JDK 1.8
19 uses: actions/setup-java@v1
20 with:
21 java-version: 1.8
22
23 - name: Cache Maven packages
24 uses: actions/cache@v2
25 with:
26 path: ~/.m2
27 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
28 restore-keys: ${{ runner.os }}-m2
29 - name: Apply patches
30 run: |
31 git config --global user.email "no-reply@github.com"
32 git config --global user.name "Github Actions"
33 ./waterfall p
34
35 - name: Build with Maven
36 run: mvn -Dcheckstyle.skip -B package
37
38# - name: Deploy with Maven
39# if: github.ref == 'refs/heads/villagemc'
40# run: mvn -s .github/workflows/maven/settings.xml -Dcheckstyle.skip -B deploy
41
42 - name: Upload artifacts
43 uses: actions/upload-artifact@v2
44 with:
45 name: artifacts
46 path: |
47 Waterfall-Proxy/bootstrap/target/Waterfall.jar
48 Waterfall-Proxy/module/antibot/target/BotFucker.jar
49
50
51 deploy:
52 needs: [ build ]
53 runs-on: ubuntu-latest
54 steps:
55 - name: Checkout
56 uses: actions/checkout@v2
57 with:
58 lfs: true
59
60 - name: Get bungee
61 uses: dawidd6/action-download-artifact@v2.14.1
62 with:
63 repo: divine-craft/BungeeCord
64 branch: villagemc
65 path: ./.docker/artifacts/bungee
66 github_token: ${{ secrets.ACTIONS_TOKEN }}
67 workflow: build.yml
68 workflow_conclusion: success
69
70 - name: Get bungee api plugin
71 uses: dawidd6/action-download-artifact@v2.14.1
72 with:
73 repo: divine-craft/bungee-main-api
74 branch: villagemc
75 path: ./.docker/artifacts/bungee-main-api
76 github_token: ${{ secrets.ACTIONS_TOKEN }}
77 workflow: build.yml
78 workflow_conclusion: success
79
80 - name: Get divine connector
81 uses: dawidd6/action-download-artifact@v2.14.1
82 with:
83 repo: divine-craft/divine-connector
84 branch: villagemc
85 path: ./.docker/artifacts/divine-connector
86 github_token: ${{ secrets.ACTIONS_TOKEN }}
87 workflow: build.yml
88 workflow_conclusion: success
89
90 - name: Get core modules
91 uses: dawidd6/action-download-artifact@v2.14.1
92 with:
93 repo: divine-craft/core-modules
94 branch: villagemc
95 path: ./.docker/artifacts/core-modules
96 github_token: ${{ secrets.ACTIONS_TOKEN }}
97 workflow: build.yml
98 workflow_conclusion: success
99
100 - name: Show artifacts
101 run: |
102 find ./.docker/artifacts/
103
104 - name: Add Kube Config
105 env:
106 KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
107 run: |
108 mkdir ~/.kube
109 echo "${KUBE_CONFIG}" | base64 --decode > ~/.kube/config
110
111 - name: Login to GitHub Container Registry
112 uses: docker/login-action@v1
113 with:
114 registry: ghcr.io
115 username: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
116 password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}
117
118 - name: Grant access to registry for Kubernetes
119 run: >
120 kubectl create secret docker-registry github-registry
121 -n villagemc-dev
122 --docker-server=ghcr.io
123 --docker-username=${{ secrets.CONTAINER_REGISTRY_USERNAME }}
124 --docker-password=${{ secrets.CONTAINER_REGISTRY_TOKEN }}
125 --dry-run=client
126 --output=yaml
127 | kubectl apply -f -
128
129 - name: Converge
130 uses: werf/actions/converge@v1.2
131 with:
132 env: villagemc-dev
133 env:
134 WERF_DEV: 'true'
135 WERF_LOG_DEBUG: 'true'