From 6456149e50edf3895f7ed42fcb0e3619c91dd3e0 Mon Sep 17 00:00:00 2001 From: Valentin Tolmer Date: Sat, 20 Nov 2021 16:51:31 +0100 Subject: [PATCH] release-tools: Add docker flow and release preparation script --- .github/workflows/docker.yml | 63 ++++++++++++++++++++++++++++++++++++ prepare-release.sh | 25 ++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 .github/workflows/docker.yml create mode 100755 prepare-release.sh diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..cd335b7 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,63 @@ +name: ci + +on: + push: + branches: + - 'main' + tags: + - 'v*.*.*' + pull_request: + branches: + - 'main' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Docker meta + id: meta + uses: docker/metadata-action@v3 + with: + # list of Docker images to use as base name for tags + images: | + nitnelave/lldap + # generate Docker tags based on the following events/attributes + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + platforms: linux/amd64 + tags: nitnelave/lldap:latest + cache-from: type=gha + cache-to: type=gha,mode=max + - + name: Update repo description + if: github.event_name != 'pull_request' + uses: peter-evans/dockerhub-description@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + repository: nitnelave/lldap diff --git a/prepare-release.sh b/prepare-release.sh new file mode 100755 index 0000000..6dd96ad --- /dev/null +++ b/prepare-release.sh @@ -0,0 +1,25 @@ +#! /bin/sh + +set -e +set -x + +# Build the binary server, for x86_64. +cargo build --release -p lldap + +cargo install cross +cross build --target=armv7-unknown-linux-musleabihf -p lldap --release + +# Build the frontend. +./app/build.sh + +VERSION=$(git describe --tags) + +mkdir -p /tmp/release/x86_64 +cp target/release/lldap /tmp/release/x86_64 +cp -R app/index.html app/main.js app/pkg lldap_config.docker_template.toml README.md LICENSE /tmp/release/x86_64 +tar -czvf lldap-x86_64-${VERSION}.tar.gz /tmp/release/x86_64 + +mkdir -p /tmp/release/armv7 +cp target/armv7-unknown-linux-musleabihf/release/lldap /tmp/release/armv7 +cp -R app/index.html app/main.js app/pkg lldap_config.docker_template.toml README.md LICENSE /tmp/release/armv7 +tar -czvf lldap-armv7-${VERSION}.tar.gz /tmp/release/armv7