Upgrade dependencies #354
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: test-and-release | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- ".husky/**" | |
- "adocs/**" | |
- "docs/**" | |
- "examples/**" | |
- "media/**" | |
- "scripts/**" | |
- "LICENSE" | |
pull_request: | |
paths-ignore: | |
- ".husky/**" | |
- "adocs/**" | |
- "docs/**" | |
- "examples/**" | |
- "media/**" | |
- "scripts/**" | |
- "LICENSE" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: ["lts/*", latest] | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@main | |
- uses: pandoc/actions/setup@main | |
- uses: actions/setup-node@main | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
- name: Cache node modules | |
uses: actions/cache@main | |
env: | |
cache-name: cache-node-${{ matrix.node }}-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install | |
run: npm ci | |
- name: Tests | |
run: npm test | |
version-check: | |
runs-on: ubuntu-latest | |
needs: test | |
if: github.ref == 'refs/heads/master' | |
outputs: | |
changed: ${{ steps.check.outputs.changed }} | |
version: ${{ steps.check.outputs.version }} | |
steps: | |
- uses: actions/checkout@main | |
- id: check | |
uses: EndBug/version-check@v2 | |
with: | |
diff-search: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
release: | |
runs-on: ubuntu-latest | |
needs: version-check | |
if: needs.version-check.outputs.changed == 'true' | |
steps: | |
- uses: actions/checkout@main | |
# https://github.com/rickstaa/action-create-tag/issues/10 | |
- name: "Change perms on GITHUB_WORKSPACE" | |
run: | | |
sudo chown -R root:root $GITHUB_WORKSPACE | |
sudo chmod -R 0777 $GITHUB_WORKSPACE | |
- uses: rickstaa/action-create-tag@main | |
with: | |
tag: v${{ needs.version-check.outputs.version }} | |
message: v${{ needs.version-check.outputs.version }} | |
- uses: ncipollo/release-action@main | |
with: | |
name: v${{ needs.version-check.outputs.version }} | |
tag: v${{ needs.version-check.outputs.version }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
npm-publish: | |
runs-on: ubuntu-latest | |
needs: release | |
if: needs.version-check.outputs.changed == 'true' | |
steps: | |
- uses: actions/checkout@main | |
- uses: actions/setup-node@main | |
with: | |
node-version: "lts/*" | |
check-latest: true | |
registry-url: "https://registry.npmjs.org" | |
- uses: actions/cache@main | |
env: | |
cache-name: cache-node-${{ matrix.node }}-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install | |
run: | | |
set -e | |
npm ci | |
cp ./docs/README.md ./ | |
- name: Publish | |
run: npm publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
docker-push: | |
runs-on: ubuntu-latest | |
needs: release | |
if: needs.version-check.outputs.changed == 'true' | |
steps: | |
- uses: actions/checkout@main | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: ${{ secrets.DOCKER_HUB_USERNAME }}/ascaid | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
type=sha | |
- name: Login to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@master | |
- name: Build and push | |
uses: docker/build-push-action@master | |
with: | |
context: . | |
file: ./Dockerfile | |
push: true | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Docker Hub Description | |
uses: peter-evans/dockerhub-description@main | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | |
repository: ${{ secrets.DOCKER_HUB_USERNAME }}/ascaid | |
short-description: ${{ github.event.repository.description }} | |
readme-filepath: "./docs/README.md" |