mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-22 18:25:47 +08:00
feat: support semantic release (#244)
Signed-off-by: sh1luo <690898835@qq.com>
This commit is contained in:
parent
8c6f0a31b6
commit
b58d5ebb2c
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
web/node_modules/
|
12
.github/semantic.yml
vendored
Normal file
12
.github/semantic.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Always validate the PR title AND all the commits
|
||||||
|
titleAndCommits: true
|
||||||
|
# Require at least one commit to be valid
|
||||||
|
# this is only relevant when using commitsOnly: true or titleAndCommits: true,
|
||||||
|
# which validate all commits by default
|
||||||
|
anyCommit: true
|
||||||
|
# Allow use of Merge commits (eg on github: "Merge branch 'master' into feature/ride-unicorns")
|
||||||
|
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
|
||||||
|
allowMergeCommits: false
|
||||||
|
# Allow use of Revert commits (eg on github: "Revert "feat: ride unicorns"")
|
||||||
|
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
|
||||||
|
allowRevertCommits: false
|
45
.github/workflows/build.yml
vendored
Normal file
45
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
frontend:
|
||||||
|
name: Front-end build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '14.17.0'
|
||||||
|
- run: yarn install && CI=false yarn run build
|
||||||
|
working-directory: ./web
|
||||||
|
|
||||||
|
backend:
|
||||||
|
name: Back-end build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '^1.16.5'
|
||||||
|
- run: go version
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
go build -race -ldflags "-extldflags '-static'"
|
||||||
|
working-directory: ./
|
||||||
|
|
||||||
|
docker:
|
||||||
|
name: Docker compose
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Start containers
|
||||||
|
run: docker-compose up
|
65
.github/workflows/release.yml
vendored
Normal file
65
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
frontend:
|
||||||
|
name: Front-end build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '14.17.0'
|
||||||
|
- run: yarn install && CI=false yarn run build
|
||||||
|
working-directory: ./web
|
||||||
|
|
||||||
|
backend:
|
||||||
|
name: Back-end build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '^1.16.5'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
go build -race -ldflags "-extldflags '-static'"
|
||||||
|
working-directory: ./
|
||||||
|
|
||||||
|
release:
|
||||||
|
name: Release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [frontend, backend]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- name: Release
|
||||||
|
run: yarn global add semantic-release@17.4.4 && semantic-release
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||||
|
|
||||||
|
publish:
|
||||||
|
name: Publish
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: release
|
||||||
|
steps:
|
||||||
|
- name: Check out the repo
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
- name: Push to Docker Hub
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
tags: shiluo/casdoor:latest
|
22
.releaserc.json
Normal file
22
.releaserc.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"debug": true,
|
||||||
|
"branches": [
|
||||||
|
"+([0-9])?(.{+([0-9]),x}).x",
|
||||||
|
{
|
||||||
|
"name": "rc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "beta",
|
||||||
|
"prerelease": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "alpha",
|
||||||
|
"prerelease": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"@semantic-release/commit-analyzer",
|
||||||
|
"@semantic-release/release-notes-generator",
|
||||||
|
"@semantic-release/github"
|
||||||
|
]
|
||||||
|
}
|
44
Dockerfile
44
Dockerfile
@ -1,25 +1,19 @@
|
|||||||
FROM golang:1.17-rc-buster
|
FROM golang:1.16 AS BACK
|
||||||
WORKDIR /casdoor
|
WORKDIR /go/src/casdoor
|
||||||
COPY ./ /casdoor
|
COPY . .
|
||||||
RUN go env -w CGO_ENABLED=0 GOPROXY=https://goproxy.io,direct GOOS=linux GOARCH=amd64 \
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o server . \
|
||||||
&& apt update && apt install sudo \
|
&& apt update && apt install wait-for-it && chmod +x /usr/bin/wait-for-it
|
||||||
&& wget https://nodejs.org/dist/v12.22.0/node-v12.22.0-linux-x64.tar.gz \
|
|
||||||
&& sudo tar xf node-v12.22.0-linux-x64.tar.gz \
|
FROM node:14.17.4 AS FRONT
|
||||||
&& sudo apt install wait-for-it
|
WORKDIR /web
|
||||||
ENV PATH=$PATH:/casdoor/node-v12.22.0-linux-x64/bin
|
COPY ./web .
|
||||||
RUN npm install -g yarn \
|
RUN npm install && npm run build
|
||||||
&& cd web \
|
|
||||||
&& yarn install \
|
FROM alpine:latest
|
||||||
&& yarn run build \
|
LABEL MAINTAINER="https://casdoor.org/"
|
||||||
&& rm -rf node_modules \
|
|
||||||
&& cd /casdoor \
|
COPY --from=BACK /go/src/casdoor/ ./
|
||||||
&& go build main.go
|
COPY --from=BACK /usr/bin/wait-for-it ./
|
||||||
FROM alpine:3.7
|
RUN mkdir -p web/build && apk add --no-cache bash coreutils
|
||||||
COPY --from=0 /casdoor /
|
COPY --from=FRONT /web/build /web/build
|
||||||
COPY --from=0 /usr/bin/wait-for-it /
|
ENTRYPOINT ["./wait-for-it", "db:3306 ", "--", "./server"]
|
||||||
RUN set -eux \
|
|
||||||
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
|
|
||||||
&& apk update \
|
|
||||||
&& apk upgrade \
|
|
||||||
&& apk add bash
|
|
||||||
CMD ./wait-for-it db:3306 && ./main
|
|
30
README.md
30
README.md
@ -1,9 +1,25 @@
|
|||||||
Casdoor
|
<h1 align="center" style="border-bottom: none;">📦⚡️ Casdoor</h1>
|
||||||
====
|
<h3 align="center">A UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0 / OIDC.</h3>
|
||||||
|
<p align="center">
|
||||||
[](https://goreportcard.com/report/github.com/casbin/casdoor) <img src="https://img.shields.io/github/license/casbin/casdoor?style=flat-square" alt="license"> [](https://github.com/casbin/casdoor/issues) [](https://github.com/casbin/casdoor/stargazers) [](https://github.com/casbin/casdoor/network)
|
<a href="https://goreportcard.com/report/github.com/casbin/casdoor">
|
||||||
|
<img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/casbin/casdoor">
|
||||||
Casdoor is a UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0 / OIDC.
|
</a>
|
||||||
|
<a href="https://github.com/casbin/casdoor/blob/master/LICENSE">
|
||||||
|
<img src="https://img.shields.io/github/license/casbin/casdoor?style=flat-square" alt="license">
|
||||||
|
</a>
|
||||||
|
<a href="#badge">
|
||||||
|
<img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/casbin/casdoor/issues">
|
||||||
|
<img alt="GitHub issues" src="https://img.shields.io/github/issues/casbin/casdoor?style=flat-square">
|
||||||
|
</a>
|
||||||
|
<a href="#">
|
||||||
|
<img alt="GitHub stars" src="https://img.shields.io/github/stars/casbin/casdoor?style=flat-square">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/casbin/casdoor/network">
|
||||||
|
<img alt="GitHub forks" src="https://img.shields.io/github/forks/casbin/casdoor?style=flat-square">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## Online demo
|
## Online demo
|
||||||
|
|
||||||
@ -97,8 +113,6 @@ dataSourceName = root:123@tcp(db:3306)/
|
|||||||
|
|
||||||
#### Run
|
#### Run
|
||||||
|
|
||||||
Just execute:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose up
|
docker-compose up
|
||||||
```
|
```
|
||||||
|
@ -3,11 +3,12 @@ services:
|
|||||||
casdoor:
|
casdoor:
|
||||||
build:
|
build:
|
||||||
context: ./
|
context: ./
|
||||||
dockerfile: go-dockerfile
|
dockerfile: Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
command: ["./wait-for-it db:3306 -- ./server"]
|
||||||
volumes:
|
volumes:
|
||||||
- ./conf:/conf/
|
- ./conf:/conf/
|
||||||
db:
|
db:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user