Skip to content

Merge pull request #362 from catdad/fix-ci #215

Merge pull request #362 from catdad/fix-ci

Merge pull request #362 from catdad/fix-ci #215

Workflow file for this run

name: CI
on:
push:
pull_request:
branches: [ master ]
env:
CI: true
FORCE_COLOR: 1
NODE: 18.x
jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE }}
- run: sudo apt-get install xvfb
- run: npm install
- name: Run npm test
run: xvfb-run --auto-servernum npm test
timeout-minutes: 5
- name: build
run: |
npm run package -- --sha ${{ github.sha }} --ref ${{ github.ref }}
ls -la dist
- uses: actions/upload-artifact@v2
with:
name: linux-artifacts
path: dist/*.tar.gz
- uses: actions/upload-artifact@v2
with:
name: linux-artifacts
path: dist/*.AppImage
macos:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: use node
uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE }}
- name: info
run: |
node -v
npm -v
- name: install
run: npm install
- name: test
run: npm test
timeout-minutes: 5
env:
VERBOSE: 1
- name: build
run: |
npm run package -- --sha ${{ github.sha }} --ref ${{ github.ref }}
ls -la dist
- uses: actions/upload-artifact@v2
with:
name: macos-artifacts
path: dist/*.zip
- uses: actions/upload-artifact@v2
with:
name: macos-artifacts
path: dist/*.dmg
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: use node
uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE }}
- name: info
run: |
node -v
npm -v
- name: install
run: npm install
- name: test
run: npm test
timeout-minutes: 5
- name: build
run: |
npm run package -- --sha ${{ github.sha }} --ref ${{ github.ref }}
dir dist
- uses: actions/upload-artifact@v2
with:
name: windows-artifacts
path: dist/*.zip
- uses: actions/upload-artifact@v2
with:
name: windows-artifacts
path: dist/*.exe
release:
runs-on: ubuntu-latest
needs: [ windows, macos, linux ]
steps:
- name: Download build artifacts
uses: actions/download-artifact@v2
with:
path: ./
- name: Flatten artifacts
run: |
mv windows-artifacts/* .
mv macos-artifacts/* .
mv linux-artifacts/* .
rm -rf *artifacts
ls -lR
- name: Remove files not ready for release
run: |
rm *.exe *.dmg *.AppImage
ls -lR
- name: Create Release
if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request'
uses: actions/github-script@v2
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const fs = require('fs').promises;
console.log('environment', process.versions);
const { repo: { owner, repo }, sha, ref } = context;
console.log({ owner, repo, sha, ref });
const name = ref.replace('refs/tags/', '');
const release = await github.repos.createRelease({
owner, repo, name,
tag_name: name,
draft: true,
target_commitish: sha
});
console.log('created release', { release });
for (let file of await fs.readdir('.')) {
console.log('uploading', file);
await github.repos.uploadReleaseAsset({
owner, repo,
release_id: release.data.id,
name: file,
data: await fs.readFile(`./${file}`)
});
}