Skip to content

New manual release 5.0.0 #115

New manual release 5.0.0

New manual release 5.0.0 #115

###########
# ENV VARS:
# - DOCKER_USERNAME
# - DOCKER_PASSWORD
# - GITHUB_TOKEN (default)
###########
name: Publish Docker Image
on:
push:
paths:
- 'release-versions/*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Get current repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: release-versions/**
- name: Get the version
id: vars
run: |
if echo "${{ steps.changed-files.outputs.modified_files }}" | grep -q 'strapi-v5-latest.txt'; then
echo "tag=$(cat release-versions/strapi-v5-latest.txt)" >> "$GITHUB_OUTPUT"
echo "latest=latest" >> "$GITHUB_OUTPUT"
else
echo "tag=$(cat release-versions/strapi-v4-latest.txt)" >> "$GITHUB_OUTPUT"
echo "latest=latest-v4" >> "$GITHUB_OUTPUT"
fi
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and export to Docker
uses: docker/build-push-action@v6
with:
load: true
context: ./images/strapi-debian
build-args: |
STRAPI_VERSION=${{steps.vars.outputs.tag}}
NODE_VERSION=18
NODE=node
GITHUB_ACTIONS=1
tags: ${{ secrets.DOCKER_USERNAME }}/strapi:test
- name: Test Image
run: |
docker run --rm ${{ secrets.DOCKER_USERNAME }}/strapi:test
- name: Build (default => debian)
uses: docker/build-push-action@v6
with:
context: ./images/strapi-debian
platforms: linux/amd64
build-args: |
STRAPI_VERSION=${{steps.vars.outputs.tag}}
NODE_VERSION=18
NODE=node
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.tag }}
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.latest }}
- name: Build (alpine)
uses: docker/build-push-action@v6
with:
context: ./images/strapi-alpine
platforms: linux/amd64
build-args: |
STRAPI_VERSION=${{ steps.vars.outputs.tag }}
NODE_VERSION=18
NODE=node
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.tag }}-alpine
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.latest }}-alpine
- name: Build (default => debian arm64)
uses: docker/build-push-action@v6
with:
context: ./images/strapi-debian
platforms: linux/arm64
build-args: |
STRAPI_VERSION=${{steps.vars.outputs.tag}}
NODE_VERSION=18
NODE=arm64v8/node
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.tag }}-arm64
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.latest }}-arm64
- name: Build (alpine arm64)
uses: docker/build-push-action@v6
with:
context: ./images/strapi-alpine
platforms: linux/arm64
build-args: |
STRAPI_VERSION=${{ steps.vars.outputs.tag }}
NODE_VERSION=18
NODE=arm64v8/node
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.tag }}-alpine-arm64
${{ secrets.DOCKER_USERNAME }}/strapi:${{ steps.vars.outputs.latest }}-alpine-arm64
- name: Docker Hub Description (README.md)
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: vshadbolt/strapi
readme-filepath: README.md
enable-url-completion: true
- name: Create Release in GitHub
id: create_release
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: v${{steps.vars.outputs.tag}}
release_name: Release ${{steps.vars.outputs.tag}}
body: strapi v${{steps.vars.outputs.tag}}