Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
cd331fa1
Unverified
Commit
cd331fa1
authored
May 28, 2023
by
Nicolas Giard
Committed by
GitHub
May 28, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ci: update build.yml
parent
272ba9b9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
306 deletions
+32
-306
build.yml
.github/workflows/build.yml
+32
-306
No files found.
.github/workflows/build.yml
View file @
cd331fa1
...
@@ -3,15 +3,9 @@ name: Build + Publish
...
@@ -3,15 +3,9 @@ name: Build + Publish
on
:
on
:
push
:
push
:
branches
:
branches
:
-
main
-
vega
tags
:
-
'
v*'
env
:
BASE_DEV_VERSION
:
2.5.0
jobs
:
jobs
:
build
:
build
:
name
:
Build
name
:
Build
runs-on
:
ubuntu-latest
runs-on
:
ubuntu-latest
...
@@ -19,57 +13,57 @@ jobs:
...
@@ -19,57 +13,57 @@ jobs:
packages
:
write
packages
:
write
steps
:
steps
:
-
uses
:
actions/checkout@v
2
-
uses
:
actions/checkout@v
3
-
name
:
Set Build Variables
-
name
:
Set Build Variables
run
:
|
run
:
|
if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then
echo "REL_VERSION=3.0.0-alpha.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
else
echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER"
echo "REL_VERSION=v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
fi
-
name
:
Disable DEV Flag + Set Version
-
name
:
Disable DEV Flag + Set Version
working-directory
:
server
run
:
|
run
:
|
sudo apt-get install jq -y
sudo apt-get install jq -y
mv package.json pkg-temp.json
mv package.json pkg-temp.json
jq --arg vs "$REL_VERSION_STRICT" -r '. + {dev:false, version:$vs}' pkg-temp.json > package.json
jq --arg vs "$REL_VERSION_STRICT" -r '. + {dev:false, version:$vs}' pkg-temp.json > package.json
rm pkg-temp.json
rm pkg-temp.json
cat package.json
cat package.json
-
name
:
Login to DockerHub
-
name
:
Fetch Latest Locales
uses
:
docker/login-action
@v1
uses
:
localazy/download
@v1
with
:
with
:
username
:
${{ secrets.DOCKERHUB_USERNAME }}
read_key
:
${{ secrets.LOCALAZY_KEY_READ }}
password
:
${{ secrets.DOCKERHUB_TOKEN }}
-
name
:
Login to GitHub Container Registry
-
name
:
Login to GitHub Container Registry
uses
:
docker/login-action@v
1
uses
:
docker/login-action@v
2
with
:
with
:
registry
:
ghcr.io
registry
:
ghcr.io
username
:
${{ github.repository_owner }}
username
:
${{ github.repository_owner }}
password
:
${{ secrets.GITHUB_TOKEN }}
password
:
${{ secrets.GITHUB_TOKEN }}
-
name
:
Set up QEMU
uses
:
docker/setup-qemu-action@v2
-
name
:
Set up Docker Buildx
uses
:
docker/setup-buildx-action@v2
-
name
:
Build and push Docker images
-
name
:
Build and push Docker images
uses
:
docker/build-push-action@v
2.9.0
uses
:
docker/build-push-action@v
4
with
:
with
:
context
:
.
context
:
.
file
:
dev/build/Dockerfile
file
:
dev/build/Dockerfile
provenance
:
true
sbom
:
true
push
:
true
push
:
true
cache-from
:
type=gha
cache-to
:
type=gha,mode=max
platforms
:
tags
:
|
tags
:
|
requarks/wiki:canary
ghcr.io/requarks/wiki:${{ env.REL_VERSION_STRICT }}
requarks/wiki:canary-${{ env.REL_VERSION_STRICT }}
ghcr.io/requarks/wiki:canary
ghcr.io/requarks/wiki:canary-${{ env.REL_VERSION_STRICT }}
-
name
:
Extract compiled files
-
name
:
Extract compiled files
run
:
|
run
:
|
mkdir -p _dist
mkdir -p _dist
docker create --name wiki ghcr.io/requarks/wiki:
canary-
$REL_VERSION_STRICT
docker create --name wiki ghcr.io/requarks/wiki:$REL_VERSION_STRICT
docker cp wiki:/wiki _dist
docker cp wiki:/wiki _dist
docker rm wiki
docker rm wiki
rm _dist/wiki/config.yml
rm _dist/wiki/config.yml
...
@@ -77,124 +71,24 @@ jobs:
...
@@ -77,124 +71,24 @@ jobs:
find _dist/wiki/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C _dist/wiki/ -T -
find _dist/wiki/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C _dist/wiki/ -T -
-
name
:
Upload a Build Artifact
-
name
:
Upload a Build Artifact
uses
:
actions/upload-artifact@v
2.3.1
uses
:
actions/upload-artifact@v
3
with
:
with
:
name
:
drop
name
:
drop
path
:
wiki-js.tar.gz
path
:
wiki-js.tar.gz
cypress
:
name
:
Run Cypress Tests
runs-on
:
ubuntu-latest
needs
:
[
build
]
strategy
:
matrix
:
dbtype
:
[
postgres
,
mysql
,
mariadb
,
mssql
,
sqlite
]
steps
:
-
uses
:
actions/checkout@v2
-
name
:
Set Test Variables
run
:
|
if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
else
echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER"
echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
fi
-
name
:
Run Tests
env
:
MATRIXENV
:
${{ matrix.dbtype }}
CYPRESS_KEY
:
${{ secrets.CYPRESS_KEY }}
run
:
|
chmod u+x dev/cypress/ci-setup.sh
dev/cypress/ci-setup.sh
docker run --name cypress --ipc=host --shm-size 1G -v $GITHUB_WORKSPACE:/e2e -w /e2e cypress/included:4.9.0 --record --key "$CYPRESS_KEY" --headless --group "$MATRIXENV" --ci-build-id "$REL_VERSION_STRICT-run$GITHUB_RUN_NUMBER.$GITHUB_RUN_ATTEMPT" --tag "$REL_VERSION_STRICT" --config baseUrl=http://172.17.0.1:3000
arm
:
name
:
ARM Build
runs-on
:
ubuntu-latest
needs
:
[
cypress
]
permissions
:
packages
:
write
strategy
:
matrix
:
include
:
-
platform
:
linux/arm64
docker
:
arm64
-
platform
:
linux/arm/v7
docker
:
armv7
steps
:
-
uses
:
actions/checkout@v2
-
name
:
Set Version Variables
run
:
|
if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
else
echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER"
echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
fi
-
name
:
Set up QEMU
uses
:
docker/setup-qemu-action@v1
-
name
:
Set up Docker Buildx
uses
:
docker/setup-buildx-action@v1
-
name
:
Login to DockerHub
uses
:
docker/login-action@v1
with
:
username
:
${{ secrets.DOCKERHUB_USERNAME }}
password
:
${{ secrets.DOCKERHUB_TOKEN }}
-
name
:
Login to GitHub Container Registry
uses
:
docker/login-action@v1
with
:
registry
:
ghcr.io
username
:
${{ github.repository_owner }}
password
:
${{ secrets.GITHUB_TOKEN }}
-
name
:
Download a Build Artifact
uses
:
actions/download-artifact@v2.1.0
with
:
name
:
drop
path
:
drop
-
name
:
Extract Build
run
:
|
mkdir -p build
tar -xzf $GITHUB_WORKSPACE/drop/wiki-js.tar.gz -C $GITHUB_WORKSPACE/build --exclude=node_modules
-
name
:
Build and push Docker images
uses
:
docker/build-push-action@v2.9.0
with
:
context
:
.
file
:
dev/build-arm/Dockerfile
platforms
:
${{ matrix.platform }}
push
:
true
tags
:
|
requarks/wiki:canary-${{ matrix.docker }}-${{ env.REL_VERSION_STRICT }}
ghcr.io/requarks/wiki:canary-${{ matrix.docker }}-${{ env.REL_VERSION_STRICT }}
windows
:
windows
:
name
:
Windows Build
name
:
Windows Build
runs-on
:
windows-latest
runs-on
:
windows-latest
needs
:
[
cypress
]
needs
:
[
build
]
steps
:
steps
:
-
name
:
Setup Node.js environment
-
name
:
Setup Node.js environment
uses
:
actions/setup-node@v2.5.
1
uses
:
actions/setup-node@v2.5.
2
with
:
with
:
node-version
:
1
2
.x
node-version
:
1
8
.x
-
name
:
Download a Build Artifact
-
name
:
Download a Build Artifact
uses
:
actions/download-artifact@v
2.1.0
uses
:
actions/download-artifact@v
3
with
:
with
:
name
:
drop
name
:
drop
path
:
drop
path
:
drop
...
@@ -202,186 +96,18 @@ jobs:
...
@@ -202,186 +96,18 @@ jobs:
-
name
:
Extract Build
-
name
:
Extract Build
run
:
|
run
:
|
mkdir -p win
mkdir -p win
tar -xzf $env:GITHUB_WORKSPACE\drop\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=node_modules
tar -xzf $env:GITHUB_WORKSPACE\drop\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=
server/
node_modules
-
name
:
Install Dependencies
-
name
:
Install Dependencies
run
:
yarn --production --frozen-lockfile --non-interactiv
e
run
:
npm ci --omit=dev --audit=false --fund=fals
e
working-directory
:
win
working-directory
:
win
/server
-
name
:
Create Bundle
-
name
:
Create Bundle
run
:
tar -czf wiki-js-windows.tar.gz -C $env:GITHUB_WORKSPACE\win .
run
:
tar -czf wiki-js-windows.tar.gz -C $env:GITHUB_WORKSPACE\win .
-
name
:
Upload a Build Artifact
-
name
:
Upload a Build Artifact
uses
:
actions/upload-artifact@v
2.3.1
uses
:
actions/upload-artifact@v
3
with
:
with
:
name
:
drop-win
name
:
drop-win
path
:
wiki-js-windows.tar.gz
path
:
wiki-js-windows.tar.gz
beta
:
name
:
Publish Beta Images
runs-on
:
ubuntu-latest
if
:
startsWith(github.ref, 'refs/tags/v')
needs
:
[
build
,
arm
,
windows
]
permissions
:
packages
:
write
steps
:
-
name
:
Set Version Variables
run
:
|
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
-
name
:
Login to DockerHub
uses
:
docker/login-action@v1
with
:
username
:
${{ secrets.DOCKERHUB_USERNAME }}
password
:
${{ secrets.DOCKERHUB_TOKEN }}
-
name
:
Login to GitHub Container Registry
uses
:
docker/login-action@v1
with
:
registry
:
ghcr.io
username
:
${{ github.repository_owner }}
password
:
${{ secrets.GITHUB_TOKEN }}
-
name
:
Create and Push Manifests
run
:
|
echo "Creating the manifests..."
docker manifest create requarks/wiki:beta-$REL_VERSION_STRICT requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create ghcr.io/requarks/wiki:beta-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT
echo "Pushing the manifests..."
docker manifest push -p requarks/wiki:beta-$REL_VERSION_STRICT
docker manifest push -p ghcr.io/requarks/wiki:beta-$REL_VERSION_STRICT
release
:
name
:
Publish Release Images
runs-on
:
ubuntu-latest
if
:
startsWith(github.ref, 'refs/tags/v')
environment
:
prod
needs
:
[
beta
]
permissions
:
packages
:
write
contents
:
write
steps
:
-
name
:
Set Version Variables
run
:
|
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
-
name
:
Login to DockerHub
uses
:
docker/login-action@v1
with
:
username
:
${{ secrets.DOCKERHUB_USERNAME }}
password
:
${{ secrets.DOCKERHUB_TOKEN }}
-
name
:
Login to GitHub Container Registry
uses
:
docker/login-action@v1
with
:
registry
:
ghcr.io
username
:
${{ github.repository_owner }}
password
:
${{ secrets.GITHUB_TOKEN }}
-
name
:
Create and Push Manifests
run
:
|
echo "Fetching semver tool..."
curl -LJO https://static.requarks.io/semver
chmod +x semver
MAJOR=`./semver get major $REL_VERSION_STRICT`
MINOR=`./semver get minor $REL_VERSION_STRICT`
MAJORMINOR="$MAJOR.$MINOR"
echo "Using major $MAJOR and minor $MINOR..."
echo "Creating the manifests..."
docker manifest create requarks/wiki:$REL_VERSION_STRICT requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create requarks/wiki:$MAJOR requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create requarks/wiki:$MAJORMINOR requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create requarks/wiki:latest requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create ghcr.io/requarks/wiki:$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create ghcr.io/requarks/wiki:$MAJOR ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create ghcr.io/requarks/wiki:$MAJORMINOR ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT
docker manifest create ghcr.io/requarks/wiki:latest ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT
echo "Pushing the manifests..."
docker manifest push -p requarks/wiki:$REL_VERSION_STRICT
docker manifest push -p requarks/wiki:$MAJOR
docker manifest push -p requarks/wiki:$MAJORMINOR
docker manifest push -p requarks/wiki:latest
docker manifest push -p ghcr.io/requarks/wiki:$REL_VERSION_STRICT
docker manifest push -p ghcr.io/requarks/wiki:$MAJOR
docker manifest push -p ghcr.io/requarks/wiki:$MAJORMINOR
docker manifest push -p ghcr.io/requarks/wiki:latest
-
name
:
Download Linux Build
uses
:
actions/download-artifact@v2.1.0
with
:
name
:
drop
path
:
drop
-
name
:
Download Windows Build
uses
:
actions/download-artifact@v2.1.0
with
:
name
:
drop-win
path
:
drop-win
-
name
:
Generate Changelog
id
:
changelog
uses
:
Requarks/changelog-action@v1
with
:
token
:
${{ github.token }}
tag
:
${{ github.ref_name }}
writeToFile
:
false
-
name
:
Update GitHub Release
uses
:
ncipollo/release-action@v1
with
:
allowUpdates
:
true
draft
:
false
name
:
${{ github.ref_name }}
body
:
${{ steps.changelog.outputs.changes }}
token
:
${{ github.token }}
artifacts
:
'
drop/wiki-js.tar.gz,drop-win/wiki-js-windows.tar.gz'
-
name
:
Notify Slack Releases Channel
uses
:
slackapi/slack-github-action@v1.18.0
with
:
payload
:
|
{
"text": "Wiki.js ${{ github.ref_name }} has been released."
}
env
:
SLACK_WEBHOOK_URL
:
${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE
:
INCOMING_WEBHOOK
build-do-image
:
name
:
Build DigitalOcean Image
runs-on
:
ubuntu-latest
needs
:
[
release
]
steps
:
-
uses
:
actions/checkout@v2
-
name
:
Set Version Variables
run
:
|
echo "Using TAG mode: $GITHUB_REF_NAME"
echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV
-
name
:
Install Packer
run
:
|
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install packer
-
name
:
Build Droplet Image
env
:
DIGITALOCEAN_API_TOKEN
:
${{ secrets.DO_TOKEN }}
WIKI_APP_VERSION
:
${{ env.REL_VERSION_STRICT }}
working-directory
:
dev/packer
run
:
|
packer build digitalocean.json
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment