Merge remote-tracking branch 'solidnerd/master' #2
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: release | |
on: | |
push: | |
# Sequence of patterns matched against refs/tags | |
tags: | |
- '*' # Push on all tag events | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up CI Image Metadata | |
id: docker_meta_ci | |
uses: docker/metadata-action@v4 | |
with: | |
images: solidnerd/bookstack-dev | |
tags: | | |
type=sha | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build and push Dev | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile | |
platforms: linux/amd64 | |
push: false | |
tags: | | |
${{ steps.docker_meta_ci.outputs.tags }} | |
labels: ${{ steps.docker_meta_ci.outputs.labels }} | |
cache-from: type=registry,ref=solidnerd/bookstack-dev:master | |
outputs: type=docker,dest=/tmp/image-bookstack.tar | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: image-bookstack-master | |
path: /tmp/image-bookstack.tar | |
e2e: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: image-bookstack-master | |
path: /tmp | |
- name: Load Docker image | |
run: | | |
docker load --input /tmp/image-bookstack.tar | |
docker image ls -a | |
push: | |
runs-on: ubuntu-22.04 | |
needs: e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Docker Hub Image Metadata | |
id: docker_meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
solidnerd/bookstack | |
ghcr.io/solidnerd/docker-bookstack | |
# Blanket-enable "latest" tagging for all of the releases that make it | |
# this far, as SemVer's pre-release tag is used as a build indicator | |
# for this project. Note that _actual_ semver build info is not used, | |
# as it is discarded by almost everything that consumes SemVer (as it | |
# should be). | |
flavor: | | |
latest=true | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}}.{{minor}}.{{patch}} | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: image-bookstack-master | |
path: /tmp | |
- name: Load Docker image | |
run: | | |
docker load --input /tmp/image-bookstack.tar | |
docker image ls -a | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.CR_PAT }} | |
- name: Build and Push master | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: | | |
${{ steps.docker_meta.outputs.tags }} | |
labels: ${{ steps.docker_meta.outputs.labels }} | |
cache-from: type=registry,ref=solidnerd/bookstack-dev:${{ github.sha }} | |
cache-to: type=registry,ref=solidnerd/bookstack-dev:${{ github.sha }} | |
create-release: | |
runs-on: ubuntu-22.04 | |
needs: push | |
steps: | |
# To use this repository's private action, you must check out the repository | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Generate changelog | |
id: changelog | |
uses: metcalfc/[email protected] | |
with: | |
myToken: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create Release | |
id: create_release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
body: ${{ steps.changelog.outputs.changelog }} | |
draft: false | |
prerelease: false |