Compare commits

...

25 Commits

Author SHA1 Message Date
Tom Moor 3d2b984701 v0.82.1-12 2025-02-23 08:57:53 -05:00
Tom Moor 691bbc4e04 ubicloud 2025-02-23 08:57:50 -05:00
Tom Moor 30e062ccb8 v0.82.1-11 2025-02-22 19:38:10 -05:00
Tom Moor 5197d73a50 root 2025-02-22 19:38:07 -05:00
Tom Moor 0d528dfeb4 v0.82.1-10 2025-02-22 19:36:47 -05:00
Tom Moor fe025a7fca yolo 2025-02-22 19:36:44 -05:00
Tom Moor 94e141a12f v0.82.1-9 2025-02-22 19:04:42 -05:00
Tom Moor 9a9f724085 checkout 2025-02-22 19:04:38 -05:00
Tom Moor ae8fc1b348 v0.82.1-8 2025-02-22 19:01:34 -05:00
Tom Moor 66d8b14af6 rework 2025-02-22 19:01:30 -05:00
Tom Moor 3d35b33443 v0.82.1-7 2025-02-22 18:25:55 -05:00
Tom Moor a476d237ff Install build tools 2025-02-22 18:25:51 -05:00
Tom Moor 73685f3877 v0.82.1-6 2025-02-22 12:44:40 -05:00
Tom Moor cc46eebd2a Update workflow 2025-02-22 12:44:36 -05:00
Tom Moor 0cc91e9bc1 v0.82.1-5 2025-02-22 12:42:56 -05:00
Tom Moor d05b088a3e Use digests instead of tags 2025-02-22 12:42:52 -05:00
Tom Moor c221622a00 v0.82.1-4 2025-02-22 12:34:29 -05:00
Tom Moor 1f91d53ca3 Split build process 2025-02-22 12:34:24 -05:00
Tom Moor 8262c91319 v0.82.1-3 2025-02-22 11:48:57 -05:00
Tom Moor 41347970f5 Selective tests 2025-02-22 11:48:37 -05:00
Tom Moor f0a04639ad v0.82.1-2 2025-02-22 11:33:40 -05:00
Tom Moor 12e4436e3a chore: Larger image 2025-02-22 11:33:32 -05:00
Tom Moor 78383a1fbf v0.82.1-1 2025-02-22 11:13:53 -05:00
Tom Moor 29482c8307 fix 2025-02-22 11:12:41 -05:00
Tom Moor 9ea218af9b v0.82.1-0 2025-02-22 10:56:52 -05:00
4 changed files with 234 additions and 29 deletions
+29 -2
View File
@@ -59,8 +59,30 @@ jobs:
- run: yarn install --frozen-lockfile
- run: yarn tsc
changes:
runs-on: ubuntu-latest
outputs:
server: ${{ steps.filter.outputs.server }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
server:
- 'server/**'
- 'shared/**'
- 'package.json'
- 'yarn.lock'
app:
- 'app/**'
- 'shared/**'
- 'package.json'
- 'yarn.lock'
test:
needs: build
if: ${{ needs.changes.outputs.app == 'true' }}
runs-on: ubuntu-latest
strategy:
matrix:
@@ -75,7 +97,8 @@ jobs:
- run: yarn test:${{ matrix.test-group }}
test-server:
needs: build
needs: [build, changes]
if: ${{ needs.changes.outputs.server == 'true' }}
runs-on: ubuntu-latest
services:
postgres:
@@ -121,6 +144,7 @@ jobs:
bundle-size:
needs: [build, types]
if: ${{ needs.changes.outputs.app == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -133,4 +157,7 @@ jobs:
run: echo "NODE_ENV=production" >> $GITHUB_ENV
- run: yarn vite:build
- name: Send bundle stats to RelativeCI
run: npx relative-ci-agent
uses: relative-ci/agent-action@v2
with:
key: ${{ secrets.RELATIVE_CI_KEY }}
token: ${{ secrets.GITHUB_TOKEN }}
+202 -24
View File
@@ -1,4 +1,4 @@
name: Docker
name: Docker build
on:
push:
@@ -10,43 +10,221 @@ env:
BASE_IMAGE_NAME: outlinewiki/outline-base
jobs:
build-and-push:
runs-on: ubuntu-latest
build-base:
runs-on: ubicloud-standard-8
container:
image: circleci/buildpack-deps:latest
options: --user root
strategy:
fail-fast: false
matrix:
platform:
# Group common architectures that are less resource intensive
- linux/amd64,linux/arm64/v8
# ARM v7 builds separately due to different requirements
- linux/arm/v7
# Group other architectures
- linux/ppc64le,linux/s390x
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.BASE_IMAGE_NAME }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push base image
id: build-base
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.base
platforms: ${{ matrix.platform }}
tags: ${{ steps.meta.outputs.tags }}
outputs: type=image,name=${{ env.BASE_IMAGE_NAME }},push-by-digest=true
- name: Export digest
run: |
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build-base.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: base-digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge-base-manifests:
runs-on: ubicloud-standard-2
needs:
- build-base
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: base-digests-*
merge-multiple: true
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push base image
uses: docker/build-push-action@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
context: .
file: Dockerfile.base
push: true
tags: ${{ env.BASE_IMAGE_NAME }}:latest
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
- name: Extract version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Build and push main image
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
images: |
${{ env.BASE_IMAGE_NAME }}
tags: |
${{ env.IMAGE_NAME }}:latest
${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/base-digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.BASE_IMAGE_NAME }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.BASE_IMAGE_NAME }}:${{ steps.meta.outputs.version }}
build-main:
needs:
- merge-base-manifests
runs-on: ubicloud-standard-8
strategy:
fail-fast: false
matrix:
platform:
# Group common architectures that are less resource intensive
- linux/amd64,linux/arm64/v8
# ARM v7 builds separately due to different requirements
- linux/arm/v7
# Group other architectures
- linux/ppc64le,linux/s390x
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.IMAGE_NAME }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push image
id: build-main
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: ${{ matrix.platform }}
tags: ${{ steps.meta.outputs.tags }}
outputs: type=image,name=${{ env.IMAGE_NAME }},push-by-digest=true
- name: Export digest
run: |
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build-main.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: main-digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge-main-manifests:
runs-on: ubicloud-standard-2
needs:
- build-main
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: main-digests-*
merge-multiple: true
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/main-digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.IMAGE_NAME }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
+2 -2
View File
@@ -3,7 +3,7 @@ Business Source License 1.1
Parameters
Licensor: General Outline, Inc.
Licensed Work: Outline 0.82.0
Licensed Work: Outline 0.82.1-12
The Licensed Work is (c) 2025 General Outline, Inc.
Additional Use Grant: You may make use of the Licensed Work, provided that
you may not use the Licensed Work for a Document
@@ -15,7 +15,7 @@ Additional Use Grant: You may make use of the Licensed Work, provided that
Licensed Work by creating teams and documents
controlled by such third parties.
Change Date: 2029-02-15
Change Date: 2029-02-23
Change License: Apache License, Version 2.0
+1 -1
View File
@@ -370,5 +370,5 @@
"qs": "6.9.7",
"rollup": "^4.5.1"
},
"version": "0.82.0"
"version": "0.82.1-12"
}