Skip to content

Commit

Permalink
Added GitHub CI action (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
viktor-podzigun committed Jul 14, 2022
1 parent 7b4e52d commit a8a9fc4
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 63 deletions.
147 changes: 147 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
name: CI

on:
push:
branches: [ master ]
tags:
- '*'
pull_request:
branches: [ master ]

jobs:
build:
runs-on: ubuntu-latest
steps:

- name: Git checkout
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '12'

- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'

- name: Cache sbt
uses: actions/cache@v2
with:
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt', 'project/**/*.scala') }}

- name: Cache node_modules
uses: actions/cache@v2
with:
path: |
~/.npm
~/.nvm
~/work/scalajs-reactjs/scalajs-reactjs/core/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/core/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/dom/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/dom/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/history/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/history/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/redux/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/redux/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/redux-devtools/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/redux-devtools/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/router/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/router/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/router-dom/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/router-dom/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/custom-virtual-dom/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/custom-virtual-dom/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/custom-virtual-dom/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/custom-virtual-dom/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld-function/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld-function/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld-function/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/helloworld-function/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/interactive-helloworld/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/interactive-helloworld/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/interactive-helloworld/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/interactive-helloworld/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/lifecycle/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/lifecycle/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/lifecycle/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/lifecycle/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-devtools/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-devtools/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-devtools/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-devtools/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-middleware/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-middleware/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-middleware/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/redux-middleware/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/router/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/router/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/router/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/router/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/style/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/style/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/style/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/style/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app/target/scala-2.13/scalajs-bundler/test/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app-redux/target/scala-2.13/scalajs-bundler/main/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app-redux/target/scala-2.13/scalajs-bundler/main/package-lock.json
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app-redux/target/scala-2.13/scalajs-bundler/test/node_modules
~/work/scalajs-reactjs/scalajs-reactjs/example/todo-app-redux/target/scala-2.13/scalajs-bundler/test/package-lock.json
key: ${{ runner.os }}-node_modules-cache-v2-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node_modules-cache-v2-
- name: Extract Tag Name
run: echo "TAG_NAME=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV
if: ${{ startsWith(github.ref, 'refs/tags') }}

- name: Setup chromedriver
run: |
export DISPLAY=:99
echo "DISPLAY=:99" >> $GITHUB_ENV
chromedriver --url-base=/wd/hub &
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
if: ${{ env.TAG_NAME == '' }}

- name: Run tests
run: sbt fastOptJS::webpack it:test
if: ${{ env.TAG_NAME == '' }}

- name: Publish SNAPSHOT
run: sbt clean publish
if: ${{ !github.event.pull_request && env.TAG_NAME == '' }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}

- name: Publish RELEASE
run: |
mkdir ./keys
echo $PGP_PUBLIC | base64 --decode > ./keys/pubring.gpg
echo $PGP_SECRET | base64 --decode > ./keys/secring.gpg
VERSION="$(echo "$TAG_NAME" | cut -d'v' -f 2)"
echo "Publish a release version=$VERSION for tag $TAG_NAME"
version=$VERSION sbt clean publishSigned sonatypeBundleRelease
if: ${{ env.TAG_NAME != '' }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
PGP_PUBLIC: ${{ secrets.PGP_PUBLIC }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
PGP_PASS: ${{ secrets.PGP_PASS }}
57 changes: 0 additions & 57 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# scalajs-reactjs

[![Build Status](https://travis-ci.com/scommons/scalajs-reactjs.svg?branch=master)](https://travis-ci.com/scommons/scalajs-reactjs)
[![CI](https://github.com/scommons/scalajs-reactjs/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/scommons/scalajs-reactjs/actions/workflows/ci.yml?query=workflow%3Aci+branch%3Amaster)
[![scala-index](https://index.scala-lang.org/scommons/scalajs-reactjs/scalajs-reactjs-core/latest.svg)](https://index.scala-lang.org/scommons/scalajs-reactjs/scalajs-reactjs-core)
[![Scala.js](https://www.scala-js.org/assets/badges/scalajs-1.1.0.svg)](https://www.scala-js.org)

Expand Down
8 changes: 4 additions & 4 deletions pgp.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import java.util.Base64

//see: https://www.scala-sbt.org/sbt-pgp/usage.html

useGpg := false
pgpPublicRing := file("./travis/pubring.gpg")
pgpSecretRing := file("./travis/secring.gpg")
pgpPassphrase := sys.env.get("PGP_PASS").map(_.toArray)
pgpPublicRing := file("./keys/pubring.gpg")
pgpSecretRing := file("./keys/secring.gpg")
pgpPassphrase := sys.env.get("PGP_PASS").map(p => new String(Base64.getDecoder.decode(p)).toArray)
Binary file removed travis/secrets.tar.enc
Binary file not shown.
2 changes: 1 addition & 1 deletion version.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version in ThisBuild := sys.env.getOrElse("version", default = "0.17.1-SNAPSHOT").stripPrefix("v")
version in ThisBuild := sys.env.getOrElse("version", default = "0.17.2-SNAPSHOT").stripPrefix("v")

0 comments on commit a8a9fc4

Please sign in to comment.