Skip to content

Commit

Permalink
Migrate from Travis CI to GitHub actions
Browse files Browse the repository at this point in the history
  • Loading branch information
ggetz committed Sep 19, 2023
1 parent 0488d5d commit cda6cbe
Show file tree
Hide file tree
Showing 13 changed files with 259 additions and 143 deletions.
7 changes: 7 additions & 0 deletions .github/actions/verify-package/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: verify node package
description: verifies Node.js use of the npm package
runs:
using: "composite"
steps:
- run: $GITHUB_ACTION_PATH/script.sh
shell: bash
20 changes: 20 additions & 0 deletions .github/actions/verify-package/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
set -ev

node -e "const Cesium = require('./');"
NODE_ENV=development node Specs/test.cjs
NODE_ENV=production node Specs/test.cjs
node Specs/test.mjs

node packages/engine/Specs/test.mjs
node packages/widgets/Specs/test.mjs

mkdir ../test
cp cesium-*.tgz ../test
cp Specs/test.*js ../test
cd ../test

npm install cesium-*.tgz
NODE_ENV=development node test.cjs
NODE_ENV=production node test.cjs
node test.mjs
118 changes: 118 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
run-name: dev
on:
push:
branches-ignore:
- 'cesium.com'
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: lint *.js
run: npm run eslint
- name: lint *.md
run: npm run markdownlint
- name: format code
run: npm run prettier-check
coverage:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-1
BRANCH: ${{ github.ref_name }}
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: build
run: npm run build
- name: coverage (firefox)
run: npm run coverage -- --browsers FirefoxHeadless --webgl-stub --failTaskOnError --suppressPassed
- name: upload coverage artifacts
if: ${{ env.AWS_ACCESS_KEY_ID != '' }}
run: aws s3 sync ./Build/Coverage s3://cesium-dev/cesium/$BRANCH/Build/Coverage --delete --color on
release-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: release build
run: npm run build-release
- name: release tests (chrome)
run: npm run test -- --browsers ChromeCI --failTaskOnError --webgl-stub --release --suppressPassed
- name: cloc
run: npm run cloc
deploy:
runs-on: ubuntu-latest
permissions:
statuses: write
env:
BUILD_VERSION: ${{ github.ref_name }}.${{ github.run_number }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-1
BRANCH: ${{ github.ref_name }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPO: ${{ github.repository }}
GITHUB_SHA: ${{ github.sha }}
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: set the version in package.json
run: npm run deploy-set-version -- --buildVersion $BUILD_VERSION
- name: create release zip
run: npm run make-zip
- name: package "cesium" module
run: npm pack &> /dev/null
- name: package "@cesium/" modules
run: npm pack --workspaces &> /dev/null
- name: build apps
run: npm run build-apps
- uses: ./.github/actions/verify-package
- name: deploy to s3
if: ${{ env.AWS_ACCESS_KEY_ID != '' }}
run: npm run deploy-s3 -- -b "cesium-dev" -d cesium/$BRANCH -c 'no-cache' --confirm
- name: set status
if: ${{ env.AWS_ACCESS_KEY_ID != '' }}
run: npm run deploy-status -- --status success --message Deployed
node-16:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install node 16
uses: actions/setup-node@v3
with:
node-version: '16'
- name: npm install
run: npm install
- name: release build
run: npm run build-release
- name: package "cesium" module
run: npm pack &> /dev/null
- name: package "@cesium/" modules
run: npm pack --workspaces &> /dev/null
- uses: ./.github/actions/verify-package
46 changes: 46 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
run-name: main
on:
workflow_run:
workflows: [dev]
types: [completed]
branches:
- main
- 'cesium.com'
jobs:
if_error_or_failure:
runs-on: ubuntu-latest
steps:
- name: message result in slack
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
id: slack
uses: slackapi/slack-github-action@v1.24.0
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
channel-id: 'cesiumjs'
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ":gh-failed: Last commit on \"${{ github.ref_name }}\" failed"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "See commit"
},
"url": "${{ github.event.head_commit.url }}",
"action_id": "button_1"
}
]
}
]
}
54 changes: 54 additions & 0 deletions .github/workflows/prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
run-name: prod
on:
push:
branches:
- 'cesium.com'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: lint *.js
run: npm run eslint
- name: lint *.md
run: npm run markdownlint
- name: format code
run: npm run prettier-check
deploy:
runs-on: ubuntu-latest
permissions:
statuses: write
env:
PROD: true
BUILD_VERSION: ${{ github.ref_name }}.${{ github.run_number }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-1
BRANCH: ${{ github.ref_name }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPO: ${{ github.repository }}
GITHUB_SHA: ${{ github.sha }}
steps:
- uses: actions/checkout@v3
- name: install node 18
uses: actions/setup-node@v3
with:
node-version: '18'
- name: npm install
run: npm install
- name: build website release
run: npm run website-release
- name: build apps
run: npm run build-apps
- name: deploy to cesium.com
if: ${{ env.AWS_ACCESS_KEY_ID != '' }}
run: npm run deploy-s3 -- -b "cesium.com-next" -c 'public, max-age=1800' --confirm
- name: set status
if: ${{ env.AWS_ACCESS_KEY_ID != '' }}
run: npm run deploy-status -- --status success --message Deployed
42 changes: 0 additions & 42 deletions .travis.yml

This file was deleted.

Loading

0 comments on commit cda6cbe

Please sign in to comment.