Skip to content

debug

debug #133

Workflow file for this run

name: CD
concurrency: production
on:
push:
branches: [master]
jobs:
check_changed:
runs-on: ubuntu-20.04
outputs:
backend_diff: ${{ steps.check_backend_diff.outputs.backend_changed }}
backend_playwright_diff: ${{ steps.check_backend_playwright_diff.outputs.backend_playwright_changed }}
frontend_diff: ${{ steps.check_frontend_diff.outputs.frontend_changed }}
steps:
- uses: actions/checkout@v3
- run: git fetch origin master --depth=1
# TODO: diffがうまく取れてなさそう
- id: check_backend_diff
run: |
CHANGED=$(git diff --name-only origin/master $GITHUB_SHA --relative ./volumes/backend/ ./containers/backend/ | wc -l)
echo $(git diff --name-only origin/master $GITHUB_SHA)
echo $(git diff --name-only $GITHUB_SHA origin/master)
echo "backend_changed=$CHANGED" >> $GITHUB_OUTPUT
- id: check_backend_playwright_diff
run: |
CHANGED=$(git diff --name-only origin/master HEAD --relative ./containers/backend_playwright/ | wc -l)
echo "backend_playwright_changed=$CHANGED" >> $GITHUB_OUTPUT
- id: check_frontend_diff
run: |
CHANGED=$(git diff --name-only origin/master HEAD --relative ./volumes/frontend/ ./containers/frontend/ | wc -l)
echo "frontend_changed=$CHANGED" >> $GITHUB_OUTPUT
backend:
runs-on: ubuntu-20.04
needs: check_changed
if: needs.check_changed.outputs.backend_diff != '0'
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-backend 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-backend 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_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-backend tag_suffix=${{ github.sha }}
make commit
make push
backend-playwright:
runs-on: ubuntu-20.04
needs: check_changed
if: needs.check_changed.outputs.backend_playwright_diff != '0'
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-backend-playwright 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-backend-playwright 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_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-backend-playwright tag_suffix=${{ github.sha }}
make commit
make push
frontend:
runs-on: ubuntu-20.04
needs: check_changed
if: needs.check_changed.outputs.frontend_diff != '0'
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-frontend 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-frontend 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_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-frontend tag_suffix=${{ github.sha }}
make commit
make push