feat: update #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deployment | |
concurrency: production | |
on: | |
push: | |
branches: [master] | |
jobs: | |
deploy: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Docker Registry | |
run: | | |
echo "${{ secrets.REGISTRY_IP }} registry.local" | sudo tee -a /etc/hosts | |
echo "${{ secrets.REGISTRY_CRT }}" > ~/registry.crt | |
echo "${{ secrets.REGISTRY_KEY }}" > ~/registry.key | |
sudo cp ~/registry.* /usr/local/share/ca-certificates/ | |
sudo update-ca-certificates | |
sudo systemctl restart docker | |
- name: Build Docker Image | |
run: | | |
make build-all tag_suffix=${{ github.sha }} | |
- name: Install OpenVPN | |
run: | | |
sudo apt-get update | |
sudo apt-get --assume-yes --no-install-recommends install openvpn | |
- name: Setup VPN config | |
run: | | |
echo "${{ secrets.CA_CRT }}" > ca.crt | |
echo "${{ secrets.CLIENT_CRT }}" > client.crt | |
echo "${{ secrets.CLIENT_KEY }}" > client.key | |
echo "${{ secrets.SECRET_TEXT }}" > secret.txt | |
echo "${{ secrets.VPN_OVPN }}" > vpn.ovpn | |
- name: Connect VPN | |
run: sudo openvpn --config vpn.ovpn --daemon | |
- name: Wait for a VPN connection | |
timeout-minutes: 1 | |
run: until ping -c1 192.168.0.10; do sleep 2; done | |
- name: Push Docker Image | |
timeout-minutes: 60 | |
run: | | |
make push-all tag_suffix=${{ github.sha }} | |
- name: Kill VPN connection | |
if: always() | |
run: | | |
sudo killall openvpn | |
- name: Update Kubernetes Manifest | |
run: | | |
git config --global user.name ${{ secrets.GIT_USER }} | |
git config --global user.email ${{ secrets.GIT_EMAIL }} | |
git clone https://${{ secrets.GIT_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_USER }}/k8s | |
cd k8s/manifests/price-monitoring | |
make tag_suffix=${{ github.sha }} |