54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
name: AWS Deploy on Push
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: echo "The job was automatically triggered by a ${{ gitea.event_name }} event."
|
|
- run: echo "This job is now running on a ${{ runner.os }} server hosted by git.fiorinis.com!"
|
|
- run: echo "The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
- run: echo "The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.12
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22.15"
|
|
|
|
- name: Install Python dependencies and CDK
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install aws-cdk-lib constructs
|
|
npm install -g aws-cdk
|
|
|
|
- name: Configure AWS credentials
|
|
uses: aws-actions/configure-aws-credentials@master
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }}
|
|
aws-region: "us-east-2"
|
|
|
|
- name: Deploy to AWS
|
|
run: cdk deploy --app="python3 ${PWD}/app.py" --require-approval=never
|
|
|
|
- name: Install AWS CLI
|
|
uses: aws-actions/setup-aws-cli@master
|
|
|
|
- name: Update application on instance
|
|
run: |
|
|
INSTANCE_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=IptvUpdater/IptvUpdaterInstance" --query "Reservations[*].Instances[*].InstanceId" --output text)
|
|
aws ssm send-command \
|
|
--instance-ids "$INSTANCE_ID" \
|
|
--document-name "AWS-RunShellScript" \
|
|
--parameters 'commands=["cd /home/ec2-user/iptv-updater-aws && git pull && pip3 install -r requirements.txt && systemctl restart iptv-updater"]'
|
|
|
|
- run: echo "This job's status is ${{ job.status }}." |