Skip to content

auto-build.yml

auto-build.yml #30

Workflow file for this run

name: DHT auto build
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'zulu'
- name: Get branch names
id: branch-name
uses: tj-actions/branch-names@v8
with:
strip_tag_prefix: 'v'
- name: Build with Maven
run: |
mvn -Dfile.encoding=UTF-8 -DskipTests=true install
cp ./dht-server/target/*-with-dependencies.jar ./dht-server-${{ steps.branch-name.outputs.tag }}.jar
cp ./dht-peer/target/*-with-dependencies.jar ./dht-peer-${{ steps.branch-name.outputs.tag }}.jar
cp ./dht-elasticsearch/target/*-with-dependencies.jar ./dht-elasticsearch-${{ steps.branch-name.outputs.tag }}.jar
zip -q -r release.zip *.jar
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ steps.branch-name.outputs.tag }}
draft: false
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./release.zip
asset_name: release-${{ steps.branch-name.outputs.tag }}.zip
asset_content_type: application/zip
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: docker.io
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push dht-server
uses: docker/build-push-action@v4
with:
context: dht-server
push: true
tags: docker.io/zpqsunny/dht-server:latest,docker.io/zpqsunny/dht-server:${{ steps.branch-name.outputs.tag }}
- name: Build and push dht-peer
uses: docker/build-push-action@v4
with:
context: dht-peer
push: true
tags: docker.io/zpqsunny/dht-peer:latest,docker.io/zpqsunny/dht-peer:${{ steps.branch-name.outputs.tag }}
- name: Build and push dht-es
uses: docker/build-push-action@v4
with:
context: dht-elasticsearch
push: true
tags: docker.io/zpqsunny/dht-es:latest,docker.io/zpqsunny/dht-es:${{ steps.branch-name.outputs.tag }}