packages.wenpai.net/deploy/ansible/roles/app/tasks/deploy.yml
Ben Word 7cb8fef01b
WP Packages rename (#42)
* Update all import paths

* Rename directory cmd/wpcomposer/ → cmd/wppackages/

* Rename import alias wpcomposergo → wppackagesgo in main.go and migrate_test.go

* Makefile — binary name wpcomposer → wppackages

* Update Air path

* Global replace repo.wp-composer.com → repo.wp-packages.org

* Global replace cdn.wp-composer.com → cdn.wp-packages.org

* Global replace wp-composer.com → wp-packages.org (remaining)

* Composer repo key in templates/docs: repositories.wp-composer → repositories.wp-packages

* Rename columns on the existing schema

* Update all Go code referencing these column names

* Routes & SEO

* Templates & front-end

* Admin UI

* Documentation

* CI/CD

* Config defaults

* Rename role directory

* Rename all systemd template files inside the role

* Update contents of all .j2 templates — service names, binary paths, descriptions

* Update tasks/main.yml and handlers/main.yml in the role

* Update deploy/ansible/roles/app/tasks/main.yml and deploy.yml

* Update deploy/ansible/group_vars/production/main.yml

* Additional renames/fixes

* Additional renames/fixes

* Additional renames/fixes

* not needed
2026-03-19 11:50:12 -05:00

94 lines
2.2 KiB
YAML

---
- name: Generate release ID
set_fact:
release_id: "{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
- name: Set release path
set_fact:
release_path: "{{ app_root }}/releases/{{ release_id }}"
- name: Create release directory
file:
path: "{{ release_path }}"
state: directory
owner: deploy
group: www-data
mode: "0775"
- name: Build CSS with Tailwind
delegate_to: localhost
become: false
shell: >
cd {{ playbook_dir }}/../.. &&
make tailwind
- name: Build Go binary locally
delegate_to: localhost
become: false
shell: >
cd {{ playbook_dir }}/../.. &&
GOOS=linux GOARCH=amd64 go build -o /tmp/wppackages-deploy-{{ release_id }} ./cmd/wppackages
- name: Upload binary
copy:
src: "/tmp/wppackages-deploy-{{ release_id }}"
dest: "{{ release_path }}/{{ go_binary_name }}"
owner: deploy
group: www-data
mode: "0755"
- name: Upload seeds file
copy:
src: "{{ playbook_dir }}/../../seeds.yaml"
dest: "{{ release_path }}/seeds.yaml"
owner: deploy
group: www-data
mode: "0644"
- name: Symlink shared storage
file:
src: "{{ app_root }}/shared/storage"
dest: "{{ release_path }}/storage"
state: link
owner: deploy
group: www-data
- name: Symlink shared .env
file:
src: "{{ app_root }}/shared/.env"
dest: "{{ release_path }}/.env"
state: link
owner: deploy
group: www-data
- name: Run database migrations
become_user: deploy
shell: "{{ release_path }}/{{ go_binary_name }} migrate --db {{ db_path }}"
- name: Atomic symlink swap
shell: |
ln -sfn {{ release_path }} {{ app_root }}/current.tmp
mv -T {{ app_root }}/current.tmp {{ app_root }}/current
- name: Check if wppackages service exists
stat:
path: /etc/systemd/system/wppackages.service
register: wppackages_service
- name: Restart wppackages service
service:
name: wppackages
state: restarted
when: wppackages_service.stat.exists
- name: Clean up old releases
shell: |
cd {{ app_root }}/releases
ls -1dt */ | tail -n +6 | xargs -r rm -rf
- name: Clean up local build artifact
delegate_to: localhost
become: false
file:
path: "/tmp/wppackages-deploy-{{ release_id }}"
state: absent