Arch publish workflow and build with docker

This commit is contained in:
ChristianVisintin
2020-12-21 11:48:41 +01:00
parent 1a5bd394b6
commit 1d112b3f32
4 changed files with 42 additions and 8 deletions

20
.github/workflows/aur-pub.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: aur-pub
on:
push:
tags:
- "*"
jobs:
aur-publish:
steps:
- uses: actions/checkout@v2
- name: Publish AUR package
uses: KSXGitHub/github-actions-deploy-aur@2.2.3
with:
pkgname: my-awesome-package
pkgbuild: ./dist/pkgs/arch/PKGBUILD
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_KEY }}
commit_message: Update AUR package
ssh_keyscan_types: rsa,dsa,ecdsa,ed25519

1
.gitignore vendored
View File

@@ -14,5 +14,6 @@
# End of https://www.gitignore.io/api/rust
# Distributions
*.rpm
*.deb

19
dist/build/deploy.sh vendored
View File

@@ -7,25 +7,30 @@ fi
VERSION=$1
mkdir -p pkgs/${VERSION}/
# Create pkgs directory
cd ..
PKGS_DIR=$(pwd)/pkgs
cd -
mkdir -p ${PKGS_DIR}/
# Build x86_64
cd x86_64/
docker build --tag termscp-${VERSION}-x86_64 .
# Create container and get deb, rpm
cd -
mkdir -p pkgs/${VERSION}/deb/
mkdir -p pkgs/${VERSION}/rpm/
mkdir -p ${PKGS_DIR}/deb/
mkdir -p ${PKGS_DIR}/rpm/
CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64 termscp-${VERSION}-x86_64)
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb pkgs/${VERSION}/deb/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.x86_64.rpm pkgs/${VERSION}/rpm/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb ${PKGS_DIR}/deb/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.x86_64.rpm ${PKGS_DIR}/rpm/
# Build x86_64_archlinux
cd x86_64_archlinux/
docker build --tag termscp-${VERSION}-x86_64_archlinux .
# Create container and get AUR pkg
cd -
mkdir -p pkgs/${VERSION}/arch/
mkdir -p ${PKGS_DIR}/arch/
CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64_archlinux termscp-${VERSION}-x86_64_archlinux)
docker cp ${CONTAINER_NAME}:/usr/src/termscp/termscp-${VERSION}-x86_64.tar.gz pkgs/arch/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/PKGBUILD pkgs/${VERSION}/arch/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/PKGBUILD ${PKGS_DIR}/arch/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/.SRCINFO ${PKGS_DIR}/arch/
exit $?

View File

@@ -6,7 +6,13 @@ RUN pacman -Syu --noconfirm \
git \
gcc \
openssl \
pkg-config
pkg-config \
sudo
# Create build user
RUN useradd build -m && \
passwd -d build && \
mkdir -p termscp && \
chown -R build.build termscp/
# Install rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \
chmod +x /tmp/rust.sh && \
@@ -21,5 +27,7 @@ RUN source $HOME/.cargo/env && cargo install cargo-aur
RUN source $HOME/.cargo/env && cargo build --release
# Build pkgs
RUN source $HOME/.cargo/env && cargo aur
# Create SRCINFO
RUN chown -R build.build ../termscp/ && sudo -u build bash -c 'makepkg --printsrcinfo > .SRCINFO'
CMD ["sh"]