aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2021-01-01 12:17:22 +0000
committerGitHub <noreply@github.com>2021-01-01 12:17:22 +0000
commit02741b5d4118fefb8e62b881abb63a3444755d4c (patch)
treed3d52be7f7c9122d9b9d8470cc10157a7b622af0
parent0f82367f219a588e366cd90b60985978a2a5366c (diff)
parentd076d428c79e248b4e981e0e7ae49256f1383042 (diff)
Merge pull request #957 from ueokande/github-actions
Move to GitHub Actions
-rw-r--r--.circleci/config.yml125
-rw-r--r--.github/workflows/build.yaml106
2 files changed, 106 insertions, 125 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 22dbcfc..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,125 +0,0 @@
-version: 2.1
-
-executors:
- default:
- docker:
- - image: circleci/node:14.15.1-stretch-browsers
- environment:
- - FIREFOX_VERSION: "78.3.0esr"
- - GECKODRIVER_VERSION: "0.27.0"
- working_directory: ~
-
-commands:
- install_firefox:
- steps:
- - restore_cache:
- key: firefox-bin
- paths:
- - ~/firefox
- - run:
- name: Install Firefox
- command: |
- test -d ~/firefox/${FIREFOX_VERSION} && exit 0
- url=https://ftp.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2
- curl -sSL -o- "$url" | tar xvfj -
- mkdir -p ~/firefox
- mv firefox ~/firefox/${FIREFOX_VERSION}
- - save_cache:
- key: firefox-bin
- paths:
- - ~/firefox
- - run: echo 'export PATH=~/firefox/$FIREFOX_VERSION:$PATH' >> $BASH_ENV
-
- install_geckodriver:
- steps:
- - run:
- name: Install geckodriver
- command: |
- mkdir -p geckodriver
-
- url=https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz
- curl -sSLf "$url" | tar -C geckodriver xvf -
-
- echo 'export PATH=~/geckodriver/$GECKODRIVER_VERSION:$PATH' >> $BASH_ENV
-
- install_dependencies:
- steps:
- - restore_cache:
- keys:
- - yarn-packages-{{ checksum "yarn.lock" }}
- - run:
- name: Install dependencies
- command: yarn install
- - save_cache:
- key: yarn-packages-{{ checksum "yarn.lock" }}
- paths:
- - ~/.cache/yarn
-
-jobs:
- build:
- executor:
- name: default
- steps:
- - install_firefox
- - checkout
- - install_dependencies
- - run: yarn lint
- - run: yarn test
- - run: yarn package
-
- e2e:
- executor:
- name: default
- steps:
- - run: sudo apt-get update && sudo apt-get -y install xsel
- - install_firefox
- - checkout
- - install_dependencies
- - run: yarn build
- - run: yarn test:e2e
-
- deploy:
- executor:
- name: default
- steps:
- - checkout
- - install_dependencies
- - run: yarn package
- - run:
- name: Deploy to AMO
- command: |
- version=$(jq -r '.version' manifest.json)
- ./script/deploy vim-vixen@i-beam.org "$version" "vim-vixen-${version}.zip"
-
-workflows:
- version: 2
- build_and_test:
- jobs:
- - build
- - e2e:
- filters:
- branches:
- ignore: /^greenkeeper\/.*/
- deploy:
- jobs:
- - build:
- filters:
- tags:
- only: /^.*/
- branches:
- ignore: /.*/
- - e2e:
- filters:
- tags:
- only: /^.*/
- branches:
- ignore: /.*/
- - deploy:
- requires:
- - build
- - e2e
- filters:
- tags:
- only: /^.*/
- branches:
- ignore: /.*/
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
new file mode 100644
index 0000000..1c2fc62
--- /dev/null
+++ b/.github/workflows/build.yaml
@@ -0,0 +1,106 @@
+name: Build
+
+on:
+ push:
+ branches:
+ - "*"
+
+jobs:
+ build:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14.15.1'
+ - uses: ueokande/setup-firefox@latest
+ with:
+ firefox-version: 78.3.0esr
+ - uses: ueokande/setup-geckodriver@latest
+ with:
+ geckodriver-version: 0.28.0
+
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v2
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-
+
+ - run: yarn install
+ - run: yarn lint
+ - run: yarn test
+ - run: yarn package
+
+ test-e2e:
+ name: E2E Test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14.15.1'
+ - uses: ueokande/setup-firefox@latest
+ with:
+ firefox-version: 78.3.0esr
+ - uses: ueokande/setup-geckodriver@latest
+ with:
+ geckodriver-version: 0.28.0
+ - name: Install xsel
+ run: sudo apt-get install -y --no-install-recommends xsel
+
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v2
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-
+
+ - run: yarn install
+ - run: yarn build
+ - name: Run test
+ run: |
+ export DISPLAY=:99
+
+ geckodriver &
+ sudo Xvfb -ac :99 -screen 0 1280x1024x24 >/dev/null 2>&1 &
+
+ yarn test:e2e
+
+ deploy:
+ name: Release to AMO
+ needs: [build, test-e2e]
+ if: startsWith(github.ref, 'refs/tags/v')
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14.15.1'
+
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v2
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-
+
+ - run: yarn install
+ - run: yarn package
+ - name: Release to AMO
+ env:
+ JWT_ISSUER: "${{ secrets.JWT_ISSUER }}"
+ JWT_SECRET: "${{ secrets.JWT_SECRET }}"
+ run: |
+ version=$(jq -r '.version' manifest.json)
+ ./script/deploy vim-vixen@i-beam.org "$version" "vim-vixen-${version}.zip"