Merge pull request #196 from jasminabrar/master #1
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: Create and Publish Docker image | |
on: | |
push: | |
branches: [ "master" ] | |
paths: | |
- 'Dockerfile' | |
pull_request: | |
types: | |
- closed | |
branches: [ "master" ] | |
paths: | |
- 'Dockerfile' | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_NAME: ${{ github.repository }}/klayout | |
jobs: | |
build-and-push-image: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Check pull request was merged | |
if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == false | |
run: | | |
echo "Error: Pull request is not merged." | |
exit 1 | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Get the current date | |
id: date | |
run: echo "::set-output name=date::$(date +%Y%m%d)" | |
- name: Log in to the container registry | |
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
- name: Build and push Docker image as latest image | |
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | |
with: | |
context: . | |
push: true | |
tags: ${{ steps.meta.outputs.tags }}-latest | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Build and push Docker image as unique image | |
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | |
with: | |
context: . | |
push: true | |
tags: "${{ steps.meta.outputs.tags }}.${{ steps.date.outputs.date }}.${{ github.run_number }}" | |
labels: ${{ steps.meta.outputs.labels }} | |