diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2021-01-01 12:17:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-01 12:17:22 +0000 |
commit | 02741b5d4118fefb8e62b881abb63a3444755d4c (patch) | |
tree | d3d52be7f7c9122d9b9d8470cc10157a7b622af0 | |
parent | 0f82367f219a588e366cd90b60985978a2a5366c (diff) | |
parent | d076d428c79e248b4e981e0e7ae49256f1383042 (diff) |
Merge pull request #957 from ueokande/github-actions
Move to GitHub Actions
-rw-r--r-- | .circleci/config.yml | 125 | ||||
-rw-r--r-- | .github/workflows/build.yaml | 106 |
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" |