Skip to content

Commit d6cf0fc

Browse files
committed
Fast-track GitHub Actions to master
1 parent 4d005aa commit d6cf0fc

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

.github/workflows/build.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
paths-ignore:
6+
- '**.md'
7+
8+
jobs:
9+
gradle:
10+
runs-on: ubuntu-latest
11+
outputs:
12+
rundocker: ${{ steps.rundocker.outputs.rundocker }}
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v3
16+
17+
- name: Setup Java
18+
uses: actions/setup-java@v3
19+
with:
20+
distribution: zulu
21+
java-version: 13
22+
cache: gradle
23+
24+
- name: Setup Gradle
25+
uses: gradle/gradle-build-action@v2
26+
27+
- name: Execute Gradle build
28+
run: ./gradlew build
29+
30+
- name: Upload Artifacts
31+
uses: actions/upload-artifact@v3
32+
with:
33+
name: Lavalink.jar
34+
path: LavalinkServer/build/libs/Lavalink.jar
35+
36+
- name: Check Docker Build
37+
id: rundocker
38+
env:
39+
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
40+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
41+
run: |
42+
echo "Run docker build: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }}"
43+
echo "::set-output name=rundocker::${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }}"
44+
45+
docker:
46+
needs: gradle
47+
runs-on: ubuntu-latest
48+
if: needs.gradle.outputs.rundocker == 'true'
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@v2
52+
53+
- name: Download Artifacts
54+
uses: actions/download-artifact@v2
55+
with:
56+
name: Lavalink.jar
57+
58+
- name: Docker Meta
59+
id: meta
60+
uses: docker/metadata-action@v4
61+
with:
62+
images: |
63+
fredboat/lavalink
64+
tags: |
65+
type=ref,event=branch
66+
type=ref,event=tag
67+
type=ref,event=pr
68+
type=sha,prefix=
69+
70+
- name: Set up QEMU
71+
uses: docker/setup-qemu-action@v2
72+
73+
- name: Set up Docker Buildx
74+
uses: docker/setup-buildx-action@v2
75+
76+
- name: Login to DockerHub
77+
uses: docker/login-action@v2
78+
with:
79+
username: ${{ secrets.DOCKERHUB_USERNAME }}
80+
password: ${{ secrets.DOCKERHUB_TOKEN }}
81+
82+
- name: Build and push
83+
uses: docker/build-push-action@v3
84+
with:
85+
file: LavalinkServer/docker/Dockerfile
86+
context: .
87+
platforms: linux/amd64,linux/arm/v7
88+
push: true
89+
tags: ${{ steps.meta.outputs.tags }}
90+
labels: ${{ steps.meta.outputs.labels }}
91+
92+
release:
93+
needs: gradle
94+
runs-on: ubuntu-latest
95+
if: startsWith(github.ref, 'refs/tags/')
96+
steps:
97+
- name: Checkout
98+
uses: actions/checkout@v2
99+
100+
- name: Download Artifacts
101+
uses: actions/download-artifact@v2
102+
with:
103+
name: Lavalink.jar
104+
105+
- name: Upload Artifacts to GitHub Release
106+
uses: softprops/action-gh-release@v1
107+
with:
108+
files: Lavalink.jar

0 commit comments

Comments
 (0)