From 26f1e4854d76eb60a6cbfbf981991ed232c573c3 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 00:48:39 +0000 Subject: [PATCH 1/8] Hello, GitHub Actioons --- .github/workflows/build.yaml | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..0b4d2ad7 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,66 @@ +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: + firefox-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: + firefox-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 build + - run: yarn test:e2e From 66eaab218cb19107e34c80cc8f755234f4c62d84 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 01:21:18 +0000 Subject: [PATCH 2/8] Start geckodriver --- .github/workflows/build.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0b4d2ad7..feed80ee 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -63,4 +63,6 @@ jobs: - run: yarn install - run: yarn build - - run: yarn test:e2e + - run: | + geckodriver & + yarn test:e2e From de70645737e595f9c8db22b7e5150916ce733fd2 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 01:52:57 +0000 Subject: [PATCH 3/8] Run Xvfb --- .github/workflows/build.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index feed80ee..095fd741 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -64,5 +64,9 @@ jobs: - run: yarn install - run: yarn build - run: | + export DISPLAY=:99 + geckodriver & + sudo Xvfb -ac :99 -screen 0 1280x1024x24 >/dev/null 2>&1 & + yarn test:e2e From 39bee8e26485db1763102c57b0980944b2d56266 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 02:13:57 +0000 Subject: [PATCH 4/8] Install xsel on GitHub Actions --- .github/workflows/build.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 095fd741..c356735b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -50,6 +50,8 @@ jobs: - uses: ueokande/setup-geckodriver@latest with: firefox-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 @@ -63,7 +65,8 @@ jobs: - run: yarn install - run: yarn build - - run: | + - name: Run test + run: | export DISPLAY=:99 geckodriver & From 641493a99bf2647b7a0c1b4e7f627cefcc63e12e Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 03:03:27 +0000 Subject: [PATCH 5/8] Add deploy step --- .github/workflows/build.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c356735b..776a4982 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -73,3 +73,31 @@ jobs: 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 + run: | + version=$(jq -r '.version' manifest.json) + ./script/deploy vim-vixen@i-beam.org "$version" "vim-vixen-${version}.zip" From e936c5ee2e95c0f4e43a1a6872b1011e9c5e7ec0 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 09:57:29 +0000 Subject: [PATCH 6/8] Set AMO secrets --- .github/workflows/build.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 776a4982..9c89c508 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -98,6 +98,9 @@ jobs: - 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" From 7cedc3dd891c2c57291564ced8fb6606b44e2b5e Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 10:23:33 +0000 Subject: [PATCH 7/8] Fix setup-geckodriver parameter --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9c89c508..1c2fc62d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -19,7 +19,7 @@ jobs: firefox-version: 78.3.0esr - uses: ueokande/setup-geckodriver@latest with: - firefox-version: 0.28.0 + geckodriver-version: 0.28.0 - name: Get yarn cache directory path id: yarn-cache-dir-path @@ -49,7 +49,7 @@ jobs: firefox-version: 78.3.0esr - uses: ueokande/setup-geckodriver@latest with: - firefox-version: 0.28.0 + geckodriver-version: 0.28.0 - name: Install xsel run: sudo apt-get install -y --no-install-recommends xsel From d076d428c79e248b4e981e0e7ae49256f1383042 Mon Sep 17 00:00:00 2001 From: Shin'ya UEOKA Date: Fri, 1 Jan 2021 11:39:31 +0000 Subject: [PATCH 8/8] Goodbye CircleCI --- .circleci/config.yml | 125 ------------------------------------------- 1 file changed, 125 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 22dbcfcb..00000000 --- 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: /.*/