You've already forked terraform-bunnynet
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
name: Deploy Configuration
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
hosts: ["git.rznet.fr", "mirror.rznet.fr"]
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up SSH key
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.TERRAFORM_SSH_KEY }}" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
ssh-keyscan -p ${{ vars.TERRAFORM_SSH_PORT }} ${{ vars.TERRAFORM_SSH_HOST }} >> ~/.ssh/known_hosts
|
|
|
|
- name: SSH - Git pull
|
|
run: |
|
|
ssh -i ~/.ssh/id_ed25519 -p ${{ vars.TERRAFORM_SSH_PORT }} terraform@${{ vars.TERRAFORM_SSH_HOST }} << 'EOF'
|
|
cd terraform-bunnynet/${{ matrix.hosts }}
|
|
git pull
|
|
EOF
|
|
|
|
- name: SSH - Terraform init
|
|
run: |
|
|
ssh -i ~/.ssh/id_ed25519 -p ${{ vars.TERRAFORM_SSH_PORT }} terraform@${{ vars.TERRAFORM_SSH_HOST }} << 'EOF'
|
|
cd terraform-bunnynet/${{ matrix.hosts }}
|
|
export BUNNYNET_API_KEY="${{ secrets.BUNNYNET_API_KEY }}"
|
|
terraform init -upgrade
|
|
EOF
|
|
|
|
- name: SSH - Terraform format check
|
|
run: |
|
|
ssh -i ~/.ssh/id_ed25519 -p ${{ vars.TERRAFORM_SSH_PORT }} terraform@${{ vars.TERRAFORM_SSH_HOST }} << 'EOF'
|
|
cd terraform-bunnynet/${{ matrix.hosts }}
|
|
export BUNNYNET_API_KEY="${{ secrets.BUNNYNET_API_KEY }}"
|
|
terraform fmt -check
|
|
EOF
|
|
|
|
- name: SSH - Terraform plan
|
|
run: |
|
|
ssh -i ~/.ssh/id_ed25519 -p ${{ vars.TERRAFORM_SSH_PORT }} terraform@${{ vars.TERRAFORM_SSH_HOST }} << 'EOF'
|
|
cd terraform-bunnynet/${{ matrix.hosts }}
|
|
export BUNNYNET_API_KEY="${{ secrets.BUNNYNET_API_KEY }}"
|
|
export VAULT_ADDR="${{ secrets.VAULT_ADDR }}"
|
|
export VAULT_TOKEN="${{ secrets.VAULT_TOKEN }}"
|
|
terraform plan
|
|
EOF
|
|
|
|
- name: SSH - Terraform apply
|
|
run: |
|
|
ssh -i ~/.ssh/id_ed25519 -p ${{ vars.TERRAFORM_SSH_PORT }} terraform@${{ vars.TERRAFORM_SSH_HOST }} << 'EOF'
|
|
cd terraform-bunnynet/${{ matrix.hosts }}
|
|
export BUNNYNET_API_KEY="${{ secrets.BUNNYNET_API_KEY }}"
|
|
export VAULT_ADDR="${{ secrets.VAULT_ADDR }}"
|
|
export VAULT_TOKEN="${{ secrets.VAULT_TOKEN }}"
|
|
terraform apply -auto-approve
|
|
EOF
|