Simplify GitHub actions (#387)

* Simplify production build actions 

This merges both the netlify-prod and docker action and also automatically add tarball to releases.

* Delete docker.yaml

* Delete netlify-prod.yaml

* Cosmetic changes and add dockerhub check

* Cosmetic changes

* Fix check runs on Tuesdays only
This commit is contained in:
Krishan 2022-03-15 17:04:14 +05:30 committed by GitHub
parent 19cb30d360
commit 38773e89ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 180 additions and 166 deletions

View file

@ -1,22 +1,28 @@
# Docs: <https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/customizing-dependency-updates> # Docs: <https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/customizing-dependency-updates>
version: 2 version: 2
updates: updates:
- package-ecosystem: github-actions - package-ecosystem: github-actions
directory: / directory: /
schedule: {interval: weekly} schedule:
reviewers: [ajbura] interval: weekly
assignees: [ajbura] day: "tuesday"
time: "01:00"
timezone: "Asia/Kolkata"
- package-ecosystem: docker - package-ecosystem: docker
directory: / directory: /
schedule: {interval: weekly} schedule:
reviewers: [ajbura] interval: weekly
assignees: [ajbura] day: "tuesday"
time: "01:00"
timezone: "Asia/Kolkata"
- package-ecosystem: npm - package-ecosystem: npm
directory: / directory: /
schedule: {interval: weekly} schedule:
reviewers: [ajbura] interval: weekly
assignees: [ajbura] day: "tuesday"
time: "01:00"
timezone: "Asia/Kolkata"

View file

@ -1,25 +1,27 @@
name: 'Build PR' name: 'Build pull request'
on: on:
pull_request: pull_request:
types: ['opened', 'synchronize'] types: ['opened', 'synchronize']
jobs: jobs:
build: build-pull-request:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
PR_NUMBER: ${{github.event.number}} PR_NUMBER: ${{github.event.number}}
steps: steps:
- uses: actions/checkout@v3.0.0 - name: Check out the repo
- name: Build uses: actions/checkout@v3.0.0
- name: Build app
run: npm ci && npm run build run: npm ci && npm run build
- name: Upload Artifact - name: Upload artifact
uses: actions/upload-artifact@v3.0.0 uses: actions/upload-artifact@v3.0.0
with: with:
name: previewbuild name: previewbuild
path: dist path: dist
retention-days: 1 retention-days: 1
- uses: actions/github-script@v6.0.0 - name: Get PR info
uses: actions/github-script@v6.0.0
with: with:
script: | script: |
var fs = require('fs'); var fs = require('fs');
@ -30,3 +32,8 @@ jobs:
name: pr.json name: pr.json
path: pr.json path: pr.json
retention-days: 1 retention-days: 1
- name: Build Docker image
uses: docker/build-push-action@v2.9.0
with:
context: .
push: false

View file

@ -5,7 +5,7 @@ on:
types: types:
- completed - completed
jobs: jobs:
build: get-build-and-deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: > if: >
${{ github.event.workflow_run.conclusion == 'success' }} ${{ github.event.workflow_run.conclusion == 'success' }}

View file

@ -1,34 +0,0 @@
name: Publish Docker image
on:
release:
types: [published]
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3.0.0
- name: Log in to Docker Hub
uses: docker/login-action@v1.14.1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.6.2
with:
images: ajbura/cinny
- name: Build and push Docker image
uses: docker/build-push-action@v2.9.0
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View file

@ -1,21 +0,0 @@
name: 'Deploy to Netlify (prod)'
on:
release:
types: [published]
jobs:
deploy:
name: 'Deploy'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.0
- uses: jsmrcaga/action-netlify-deploy@v1.7.2
with:
install_command: "npm ci"
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
BUILD_DIRECTORY: "dist"
NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}"
NETLIFY_DEPLOY_TO_PROD: true

56
.github/workflows/prod-deploy.yaml vendored Normal file
View file

@ -0,0 +1,56 @@
name: 'Production deploy'
on:
release:
types: [published]
jobs:
deploy-to-netlify:
name: 'Deploy to Netlify'
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3.0.0
- name: Build and deploy to Netlify
uses: jsmrcaga/action-netlify-deploy@v1.7.2
with:
install_command: "npm ci"
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
BUILD_DIRECTORY: "dist"
NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}"
NETLIFY_DEPLOY_TO_PROD: true
- name: Get version from tag
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Create tar.gz
run: tar -czvf cinny-${{ steps.vars.outputs.tag }}.tar.gz dist
- name: Upload tagged release
uses: softprops/action-gh-release@v1
with:
files: |
cinny-${{ steps.vars.outputs.tag }}.tar.gz
push_to_dockerhub:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3.0.0
- name: Login to Docker Hub
uses: docker/login-action@v1.14.1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.6.2
with:
images: ajbura/cinny
- name: Build and push Docker image
uses: docker/build-push-action@v2.9.0
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}