Skip to content

Deploy in docker container (4) #20

Deploy in docker container (4)

Deploy in docker container (4) #20

Workflow file for this run

name: Release workflow
permissions:
contents: write
on:
push:
tags: [ 'v*' ]
workflow_dispatch:
jobs:
release-package:
name: Release package
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: npm
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Create release file
run: |
cd dist
TAG_NAME=${GITHUB_REF#refs/tags/}
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
tar -czvf ../dkg-frontend-$TAG_NAME.tar.gz *
- name: Release
uses: softprops/action-gh-release@v2
with:
files: 'dkg-frontend-${{ env.TAG_NAME }}.tar.gz'
prerelease: ${{ contains(github.ref, '.rc') && 'true' || 'false' }}
release-docker-image:
name: Release docker image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: maxirmx
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/maxirmx/dkg-frontend
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: config/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Purge old versions
if: contains(github.ref, 'refs/tags/v')
continue-on-error: true
uses: actions/delete-package-versions@v5
with:
package-name: dkg-frontend
package-type: 'container'
min-versions-to-keep: 1
delete-only-untagged-versions: 'true'