summaryrefslogtreecommitdiffci
diff options
from:
to:
context:
space:
mode:
authorGravatar SayaAndy <saya.andy@posteo.com> 2026-05-04 15:50:53 +0700
committerGravatar SayaAndy <saya.andy@posteo.com> 2026-05-04 15:50:53 +0700
commit38cb561f5f9048d26ac7f38176c928fd4e7f32df (patch)
treecb1411d0898ea7a5b5970c88831eaccd30478bc6
parent7b1aca39816f4b82ddf9c4ced83275d56e1b8780 (diff)
downloadweb-38cb561f5f9048d26ac7f38176c928fd4e7f32df.tar.gz
web-38cb561f5f9048d26ac7f38176c928fd4e7f32df.zip
feat: enable gha buildx cache
fix: use sha short from single source
-rw-r--r--.github/workflows/build-and-deploy-prod.yml5
-rw-r--r--.github/workflows/build-and-deploy-stage.yml15
-rw-r--r--Dockerfile1
3 files changed, 13 insertions, 8 deletions
diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml
index 4689e28..d33f7af 100644
--- a/.github/workflows/build-and-deploy-prod.yml
+++ b/.github/workflows/build-and-deploy-prod.yml
@@ -40,6 +40,8 @@ jobs:
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
@@ -87,8 +89,9 @@ jobs:
working-directory: ./deploy
run: |
ansible-playbook \
+ playbook.yml \
-i inventory.yml \
- -l prod playbook.yml \
+ -l prod \
--private-key ~/.ssh/id_ed25519 \
-u svc_github \
-e saya_today_web_auth_salt="${{ secrets.AUTH_SALT }}" \
diff --git a/.github/workflows/build-and-deploy-stage.yml b/.github/workflows/build-and-deploy-stage.yml
index f81212a..ce4a1fb 100644
--- a/.github/workflows/build-and-deploy-stage.yml
+++ b/.github/workflows/build-and-deploy-stage.yml
@@ -9,6 +9,8 @@ jobs:
environment: Stage
permissions:
packages: write
+ outputs:
+ sha_short: ${{ steps.ghss_vars.outputs.sha_short }}
steps:
- name: Checkout
uses: actions/checkout@v6
@@ -35,7 +37,7 @@ jobs:
- name: Set github short sha
id: ghss_vars
- run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
+ run: echo "sha_short=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v7
@@ -43,6 +45,8 @@ jobs:
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 }}
@@ -77,25 +81,22 @@ jobs:
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'"
- - 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"
working-directory: ./deploy
run: |
ansible-playbook \
+ playbook.yml \
-i inventory.yml \
- -l stage playbook.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-${{ steps.ghss_vars.outputs.sha_short }} \
+ -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 }}" \
diff --git a/Dockerfile b/Dockerfile
index 5c38111..318ca51 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,6 +4,7 @@ RUN apk add --no-cache sqlite-dev musl-dev gcc
WORKDIR /builddir
COPY . .
+RUN go mod download
RUN CGO_ENABLED=1 go build -o sayana-web .
FROM alpine:3.23 AS runtime-stage