Skip to content

remove some useless fields in the gh action #39

remove some useless fields in the gh action

remove some useless fields in the gh action #39

Workflow file for this run

name: Continuous Integration and Delivery
on:
push:
branches:
- master
workflow_dispatch:
env:
WEB_IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/web
NGINX_IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/nginx
jobs:
build:
name: Build Docker Images
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v1
- name: Add environment variables to .env
run: |
echo "RBS_DEBUG=0" >> .env
echo "TELEGRAM_SEND_URL=${{ secrets.TELEGRAM_SEND_URL }}" >> .env
echo "DB_URL=${{ secrets.DB_URL }}" >> .env
echo "DB_KEY=${{ secrets.DB_KEY }}" >> .env
echo "GOOGLE_OAUTH_ID=${{ secrets.GOOGLE_OAUTH_ID }}" >> .env
echo "GOOGLE_OAUTH_SECRET=${{ secrets.GOOGLE_OAUTH_SECRET }}" >> .env
echo "GOOGLE_DISCOVERY_URL=${{ secrets.GOOGLE_DISCOVERY_URL }}" >> .env
echo "TWITTER_APIV1_KEY=${{ secrets.TWITTER_APIV1_KEY }}" >> .env
echo "TWITTER_APIV1_SECRET=${{ secrets.TWITTER_APIV1_SECRET }}" >> .env
echo "FACEBOOK_CLIENT_ID=${{ secrets.FACEBOOK_CLIENT_ID }}" >> .env
echo "FACEBOOK_CLIENT_SECRET=${{ secrets.FACEBOOK_CLIENT_SECRET }}" >> .env
echo "GH_CLIENT_ID=${{ secrets.GH_CLIENT_ID }}" >> .env
echo "GH_CLIENT_SECRET=${{ secrets.GH_CLIENT_SECRET }}" >> .env
echo "DISCORD_CLIENT_ID=${{ secrets.DISCORD_CLIENT_ID }}" >> .env
echo "DISCORD_CLIENT_SECRET=${{ secrets.DISCORD_CLIENT_SECRET }}" >> .env
echo "TWITCH_CLIENT_ID=${{ secrets.TWITCH_CLIENT_ID }}" >> .env
echo "TWITCH_CLIENT_SECRET=${{ secrets.TWITCH_CLIENT_SECRET }}" >> .env
echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env
echo "DEEPL_AUTH_KEY=${{ secrets.DEEPL_AUTH_KEY }}" >> .env
- name: Set environment variables
run: |
echo "WEB_IMAGE=$(echo ${{env.WEB_IMAGE}} )" >> $GITHUB_ENV
echo "NGINX_IMAGE=$(echo ${{env.NGINX_IMAGE}} )" >> $GITHUB_ENV
- name: Log in to GitHub Packages
run: echo ${PERSONAL_ACCESS_TOKEN} | docker login ghcr.io -u ${{ secrets.NAMESPACE }} --password-stdin
env:
PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Pull images
run: |
docker pull ${{ env.WEB_IMAGE }} || true
docker pull ${{ env.NGINX_IMAGE }} || true
- name: Build images
run: |
docker compose -f docker-compose.ci.yml build
- name: Push images
run: |
docker push ${{ env.WEB_IMAGE }}
docker push ${{ env.NGINX_IMAGE }}
deploy:
name: Deploy to Oracle
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: "https://web-rbs.com"
steps:
- name: Checkout master
uses: actions/checkout@v1
- name: Add environment variables to .env.prod
run: |
echo "WEB_IMAGE=${{ env.WEB_IMAGE }}" >> .env.prod
echo "NGINX_IMAGE=${{ env.NGINX_IMAGE }}" >> .env.prod
echo "NAMESPACE=${{ secrets.NAMESPACE }}" >> .env.prod
echo "PERSONAL_ACCESS_TOKEN=${{ secrets.PERSONAL_ACCESS_TOKEN }}" >> .env.prod
- name: Add the private SSH key to the ssh-agent
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
mkdir -p ~/.ssh
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh-add - <<< "${{ secrets.PRIVATE_KEY }}"
- name: Build and deploy images on Oracle
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
scp -o StrictHostKeyChecking=no -r ./.env.prod ./docker-compose.prod.yml ubuntu@${{ secrets.SERVER_IP }}:~/app
ssh -o StrictHostKeyChecking=no ubuntu@${{ secrets.SERVER_IP }} << 'ENDSSH'
cd ~/app
source .env.prod
echo $PERSONAL_ACCESS_TOKEN | sudo docker login ghcr.io -u $NAMESPACE --password-stdin
sudo docker pull $WEB_IMAGE
sudo docker pull $NGINX_IMAGE
sudo docker compose -f docker-compose.prod.yml --env-file .env.prod up -d
ENDSSH