ci: add GitHub container docker push

This commit is contained in:
ReaJason
2025-02-02 15:18:05 +08:00
parent 2440a2fb2e
commit 9093c2c7be
+35 -15
View File
@@ -3,68 +3,88 @@ name: Build
on: on:
workflow_dispatch: workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: jobs:
build: build-jar:
name: Build Jar name: Build Jar
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 with:
fetch-depth: 0
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
distribution: 'temurin' distribution: 'temurin'
java-version: 17 java-version: 17
- name: Setup Gradle - name: Setup Gradle
uses: gradle/actions/setup-gradle@v4 uses: gradle/actions/setup-gradle@v4
- uses: actions/setup-node@v4
- name: Setup Node
uses: actions/setup-node@v4
with: with:
node-version: '23' node-version: '23'
- uses: oven-sh/setup-bun@v2
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with: with:
bun-version: latest bun-version: latest
- name: Bun Install - name: Bun Install
run: cd web && bun install --frozen-lockfile run: cd web && bun install --frozen-lockfile
- name: Build Web - name: Build Web
run: cd web && bun run build run: cd web && bun run build
- name: Test with Gradle - name: Test Boot with Gradle
run: ./gradlew :boot:test run: ./gradlew :boot:test
- name: Build with Gradle - name: Build with Gradle
run: ./gradlew :boot:bootjar run: ./gradlew :boot:bootjar
- name: Upload Jar - name: Upload Jar
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: boot name: boot
path: boot/build/libs/boot.jar path: boot/build/libs/boot.jar
push:
docker-push:
name: Docker Push name: Docker Push
needs: [ build ] needs: [ build-jar ]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 with:
fetch-depth: 0
- name: Download Jar - name: Download Jar
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: boot name: boot
path: boot/build/libs path: boot/build/libs
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub - name: Login to Docker Hub
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
username: ${{ vars.DOCKERHUB_USERNAME }} username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
- name: Build and push - name: Build and push
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
with: with:
context: boot context: boot
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: reajason/memshell-party:latest tags:
- ${{ vars.DOCKERHUB_USERNAME }}/memshell-party:latest
- ghcr.io/${{ github.repository_owner }}/memshell-party:latest