crude and inflexible prototype
This commit is contained in:
commit
cbe266ed76
|
@ -0,0 +1,141 @@
|
|||
---
|
||||
- name: create an Alpine build container
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
collections:
|
||||
- containers.podman
|
||||
vars:
|
||||
alpine_version: 3.11.3
|
||||
tasks:
|
||||
- name: check container
|
||||
podman_container_info:
|
||||
name: alpine-builder
|
||||
register: container_info
|
||||
|
||||
- name: create container
|
||||
block:
|
||||
- name: ensure image is present and fresh
|
||||
podman_image:
|
||||
name: docker.io/library/alpine
|
||||
tag: "{{ alpine_version }}"
|
||||
force: yes
|
||||
|
||||
- podman_container:
|
||||
name: alpine-builder
|
||||
image: "alpine:{{ alpine_version }}"
|
||||
tty: yes
|
||||
interactive: yes
|
||||
register: container
|
||||
when: "'no such container' in container_info.stderr"
|
||||
|
||||
- name: register container
|
||||
add_host:
|
||||
name: alpine-builder
|
||||
ansible_connection: podman
|
||||
changed_when: false
|
||||
|
||||
- name: install Python
|
||||
block:
|
||||
- raw: apk update
|
||||
- raw: apk add python3
|
||||
delegate_to: alpine-builder
|
||||
when: container is changed
|
||||
|
||||
- name: configure a build environment
|
||||
hosts: alpine-builder
|
||||
become_method: su
|
||||
become_user: tgerczei
|
||||
tasks:
|
||||
- name: update system
|
||||
apk:
|
||||
update_cache: yes
|
||||
upgrade: yes
|
||||
|
||||
- name: install Alpine SDK
|
||||
package:
|
||||
name: alpine-sdk
|
||||
|
||||
- name: configure build system
|
||||
lineinfile:
|
||||
path: /etc/abuild.conf
|
||||
line: "{{ config_line }}"
|
||||
insertafter: "^#{{ config_line.split('=')[0] }}.*"
|
||||
loop: "{{ build_config }}"
|
||||
loop_control:
|
||||
loop_var: config_line
|
||||
label: "{{ config_line.split('=')[0] }}"
|
||||
vars:
|
||||
build_config:
|
||||
- PACKAGER="GERCZEI, Tamas <tamas@gerczei.eu>"
|
||||
- MAINTAINER="$PACKAGER"
|
||||
|
||||
- name: ensure user exists
|
||||
user:
|
||||
name: tgerczei
|
||||
shell: /bin/sh
|
||||
groups:
|
||||
- wheel
|
||||
- abuild
|
||||
append: yes
|
||||
|
||||
- name: obtain aports tree
|
||||
block:
|
||||
- name: configure git
|
||||
git_config:
|
||||
name: "{{ item.name }}"
|
||||
value: "{{ item.value }}"
|
||||
scope: global
|
||||
loop: "{{ git_settings }}"
|
||||
vars:
|
||||
git_settings:
|
||||
- name: user.email
|
||||
value: tamas@gerczei.eu
|
||||
- name: user.name
|
||||
value: GERCZEI, Tamas
|
||||
|
||||
- name: clone aports repository
|
||||
git:
|
||||
repo: git://git.alpinelinux.org/aports
|
||||
dest: /home/tgerczei/aports
|
||||
update: no
|
||||
register: repo
|
||||
|
||||
- name: generate cryptographic key for the build system
|
||||
command: abuild-keygen -qai
|
||||
args:
|
||||
creates: /home/tgerczei/.abuild
|
||||
|
||||
become: yes
|
||||
|
||||
- name: build a Gitea package
|
||||
hosts: alpine-builder
|
||||
become_method: su
|
||||
become_user: tgerczei
|
||||
tasks:
|
||||
- name: build and fetch package
|
||||
block:
|
||||
- name: modify APKBUILD
|
||||
copy:
|
||||
src: /home/tgerczei/alpine-gitea/APKBUILD
|
||||
dest: /home/tgerczei/aports/community/gitea/
|
||||
register: apkbuild
|
||||
when: repo is changed
|
||||
|
||||
- command: abuild -q checksum
|
||||
args:
|
||||
chdir: /home/tgerczei/aports/community/gitea
|
||||
when: apkbuild is changed
|
||||
|
||||
- name: build package
|
||||
command: abuild -qrc
|
||||
args:
|
||||
chdir: /home/tgerczei/aports/community/gitea
|
||||
creates: /home/tgerczei/packages/community/x86_64
|
||||
|
||||
- name: obtain package
|
||||
fetch:
|
||||
src: /home/tgerczei/packages/community/x86_64/gitea-1.11.3-r0.apk
|
||||
dest: /home/tgerczei/alpine-gitea/packages/
|
||||
flat: yes
|
||||
|
||||
become: yes
|
Loading…
Reference in New Issue