Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/build-and-deploy-prod.yml | 58 | ||||
| -rw-r--r-- | .github/workflows/build-and-deploy-stage.yml | 59 |
2 files changed, 39 insertions, 78 deletions
diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index 060ae32..a180d39 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -12,36 +12,29 @@ jobs: packages: write steps: - name: Checkout - uses: actions/checkout@v6 - + uses: actions/checkout@v4 - name: Generate output.css with tailwindcss uses: ZoeyVid/tailwindcss-update@main with: input: static/input.css output: static/output.css params: "--minify" - - name: Set up QEMU - uses: docker/setup-qemu-action@v4 - + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v4 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GHCR_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v7 + uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile push: true - cache-from: type=gha - cache-to: type=gha,mode=max tags: | ghcr.io/sayaandy/saya-today-web:latest ghcr.io/sayaandy/saya-today-web:stable @@ -52,17 +45,11 @@ jobs: runs-on: ubuntu-latest environment: Production needs: [build-and-push] - container: - image: ghcr.io/ansible/community-ansible-dev-tools:v26.4.6 - options: --user root steps: - name: Checkout - uses: actions/checkout@v6 - - - name: Install community.docker collection - run: ansible-galaxy collection install community.docker + uses: actions/checkout@v4 - - name: Set up SSH connection for uz.saya.casa + - name: Set up SSH connection for pl.saya.today run: | mkdir -p ~/.ssh (cat <<EOF @@ -71,32 +58,21 @@ jobs: ) > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 sed -i 's/\r$//' ~/.ssh/id_ed25519 - ssh-keyscan -H uz.saya.casa >> ~/.ssh/known_hosts + ssh-keyscan -H pl.saya.today >> ~/.ssh/known_hosts - name: Test SSH connection run: | - ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 svc_github@uz.saya.casa "echo 'SSH connection successful'" + ssh -o ConnectTimeout=10 -i ~/.ssh/id_ed25519 svc_github@pl.saya.today "echo 'SSH connection successful'" + + - name: Install Ansible + shell: bash + run: | + sudo apt update + sudo apt install -y ansible - name: Run Ansible playbook env: - ANSIBLE_HOST_KEY_CHECKING: "False" + ANSIBLE_HOST_KEY_CHECKING: False working-directory: ./deploy run: | - ansible-playbook \ - playbook.yml \ - -i inventory.yml \ - -l prod \ - --private-key ~/.ssh/id_ed25519 \ - -u svc_github \ - -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" \ - -e saya_today_web_s3_access_key_id="${{ secrets.S3_ACCESS_KEY_ID }}" \ - -e saya_today_web_s3_secret_access_key="${{ secrets.S3_SECRET_ACCESS_KEY }}" \ - -e saya_today_web_environment=prod \ - -e saya_today_web_tag=${{ github.ref_name }} \ - -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" \ - -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" \ - -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" \ - -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" \ - -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" \ - -e saya_today_google_site_verification="${{ secrets.GOOGLE_SITE_VERIFICATION }}" \ - -e saya_today_yandex_verification="${{ secrets.YANDEX_VERIFICATION }}" + ansible-playbook -i inventory.yml -l prod playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt=${{ secrets.AUTH_SALT }} -e saya_today_web_b2_key_id=${{ secrets.B2_KEY_ID }} -e saya_today_web_b2_application_key=${{ secrets.B2_APPLICATION_KEY }} -e saya_today_web_environment=prod -e saya_today_web_tag=${{ github.ref_name }} diff --git a/.github/workflows/build-and-deploy-stage.yml b/.github/workflows/build-and-deploy-stage.yml index ce4a1fb..0aea0a4 100644 --- a/.github/workflows/build-and-deploy-stage.yml +++ b/.github/workflows/build-and-deploy-stage.yml @@ -9,11 +9,9 @@ jobs: environment: Stage permissions: packages: write - outputs: - sha_short: ${{ steps.ghss_vars.outputs.sha_short }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v4 - name: Generate output.css with tailwindcss uses: ZoeyVid/tailwindcss-update@main @@ -23,13 +21,13 @@ jobs: params: "--minify" - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v4 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -37,16 +35,14 @@ jobs: - name: Set github short sha id: ghss_vars - run: echo "sha_short=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Build and push - uses: docker/build-push-action@v7 + uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile push: true - cache-from: type=gha - cache-to: type=gha,mode=max tags: | ghcr.io/sayaandy/saya-today-web:latest ghcr.io/sayaandy/saya-today-web:commit-${{ steps.ghss_vars.outputs.sha_short }} @@ -56,17 +52,11 @@ jobs: runs-on: ubuntu-latest environment: Stage needs: [build-and-push] - container: - image: ghcr.io/ansible/community-ansible-dev-tools:v26.4.6 - options: --user root steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v4 - - name: Install community.docker collection - run: ansible-galaxy collection install community.docker - - - name: Set up SSH connection for uz.saya.casa + - name: Set up SSH connection for pl.saya.today run: | mkdir -p ~/.ssh (cat <<EOF @@ -75,30 +65,25 @@ jobs: ) > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 sed -i 's/\r$//' ~/.ssh/id_ed25519 - ssh-keyscan -H uz.saya.casa >> ~/.ssh/known_hosts + ssh-keyscan -H pl.saya.today >> ~/.ssh/known_hosts - name: Test SSH connection run: | - ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 svc_github@uz.saya.casa "echo 'SSH connection successful'" + ssh -o ConnectTimeout=10 -i ~/.ssh/id_ed25519 svc_github@pl.saya.today "echo 'SSH connection successful'" + + - name: Install Ansible + shell: bash + run: | + sudo apt update + sudo apt install -y ansible + + - name: Set github short sha + id: ghss_vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Run Ansible playbook env: - ANSIBLE_HOST_KEY_CHECKING: "False" + ANSIBLE_HOST_KEY_CHECKING: False working-directory: ./deploy run: | - ansible-playbook \ - playbook.yml \ - -i inventory.yml \ - -l stage \ - --private-key ~/.ssh/id_ed25519 \ - -u svc_github \ - -e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" \ - -e saya_today_web_s3_access_key_id="${{ secrets.S3_ACCESS_KEY_ID }}" \ - -e saya_today_web_s3_secret_access_key="${{ secrets.S3_SECRET_ACCESS_KEY }}" \ - -e saya_today_web_environment=stage \ - -e saya_today_web_tag=commit-${{ needs.build-and-push.outputs.sha_short }} \ - -e saya_today_web_mail_salt="${{ secrets.MAIL_SALT }}" \ - -e saya_today_web_mail_host="${{ secrets.MAIL_HOST }}" \ - -e saya_today_web_mail_address="${{ secrets.MAIL_ADDRESS }}" \ - -e saya_today_web_mail_username="${{ secrets.MAIL_USERNAME }}" \ - -e saya_today_web_mail_password="${{ secrets.MAIL_PASSWORD }}" + ansible-playbook -i inventory.yml -l stage playbook.yml --private-key ~/.ssh/id_ed25519 -u svc_github -e saya_today_web_auth_salt=${{ secrets.AUTH_SALT }} -e saya_today_web_b2_key_id=${{ secrets.B2_KEY_ID }} -e saya_today_web_b2_application_key=${{ secrets.B2_APPLICATION_KEY }} -e saya_today_web_environment=stage -e saya_today_web_tag=commit-${{ steps.ghss_vars.outputs.sha_short }} |