diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 1ddd633a..361c47ae 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -9,26 +9,28 @@ on: types: [published] jobs: + # NOTE: this job requires curl, jq and yarn + # All of them are included in ubuntu-latest. npm: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + - name: Run ./ci/steps/publish-npm.sh - uses: ./ci/images/debian10 - with: - args: ./ci/steps/publish-npm.sh + run: ./ci/steps/publish-npm.sh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + # NOTE: this job requires curl, jq and docker + # All of them are included in ubuntu-latest. docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + - name: Run ./ci/steps/push-docker-manifest.sh - uses: ./ci/images/debian10 - with: - args: ./ci/steps/push-docker-manifest.sh + run: ./ci/steps/push-docker-manifest.sh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} diff --git a/ci/dev/image/run.sh b/ci/dev/image/run.sh deleted file mode 100755 index 3d5e15dd..00000000 --- a/ci/dev/image/run.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -main() { - cd "$(dirname "$0")/../../.." - source ./ci/lib.sh - mkdir -p .home - - docker run \ - -it \ - --rm \ - -v "$PWD:/src" \ - -e HOME="/src/.home" \ - -e USER="coder" \ - -e GITHUB_TOKEN \ - -e KEEP_MODULES \ - -e MINIFY \ - -w /src \ - -p 127.0.0.1:8080:8080 \ - -u "$(id -u):$(id -g)" \ - -e CI \ - "$(docker_build ./ci/images/"${IMAGE-debian10}")" \ - "$@" -} - -docker_build() { - docker build "$@" >&2 - docker build -q "$@" -} - -main "$@" diff --git a/ci/images/centos7/Dockerfile b/ci/images/centos7/Dockerfile deleted file mode 100644 index e057b93d..00000000 --- a/ci/images/centos7/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM centos:7 - -ARG NODE_VERSION=v12.18.4 -RUN ARCH="$(uname -m | sed 's/86_64/64/; s/aarch64/arm64/')" && \ - curl -fsSL "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-$ARCH.tar.xz" | tar -C /usr/local -xJ && \ - mv "/usr/local/node-$NODE_VERSION-linux-$ARCH" "/usr/local/node-$NODE_VERSION" -ENV PATH=/usr/local/node-$NODE_VERSION/bin:$PATH -RUN npm install -g yarn - -RUN yum groupinstall -y 'Development Tools' -RUN yum install -y python2 - -RUN npm config set python python2 - -RUN yum install -y epel-release && yum install -y jq -RUN yum install -y rsync - -# Install Go. -RUN ARCH="$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')" && \ - curl -fsSL "https://dl.google.com/go/go1.14.3.linux-$ARCH.tar.gz" | tar -C /usr/local -xz -ENV GOPATH=/gopath -# Ensures running this image as another user works. -RUN mkdir -p $GOPATH && chmod -R 777 $GOPATH -ENV PATH=/usr/local/go/bin:$GOPATH/bin:$PATH - -# Install Go dependencies -ENV GO111MODULE=on -RUN go get github.com/goreleaser/nfpm/cmd/nfpm@v2.3.1 - -RUN curl -fsSL https://get.docker.com | sh diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 7f17d449..22f4feb8 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -57,13 +57,6 @@ yarn watch # Visit http://localhost:8080 once the build is completed. ``` -To develop inside an isolated Docker container: - -```shell -./ci/dev/image/run.sh yarn -./ci/dev/image/run.sh yarn watch -``` - `yarn watch` will live reload changes to the source. ### Updating VS Code @@ -89,7 +82,9 @@ To update VS Code, follow these steps: You can build using: ```shell -./ci/dev/image/run.sh ./ci/steps/release.sh +yarn build +yarn build:vscode +yarn release ``` Run your build with: @@ -101,24 +96,7 @@ yarn --production node . ``` -Build the release packages (make sure that you run `./ci/steps/release.sh` first): - -```shell -IMAGE=centos7 ./ci/dev/image/run.sh ./ci/steps/release-packages.sh -# The standalone release is in ./release-standalone -# .deb, .rpm and the standalone archive are in ./release-packages -``` - -The `release.sh` script is equal to running: - -```shell -yarn -yarn build -yarn build:vscode -yarn release -``` - -And `release-packages.sh` is equal to: +Build the release packages (make sure that you run `yarn release` first): ```shell yarn release:standalone @@ -126,12 +104,10 @@ yarn test:standalone-release yarn package ``` -For a faster release build, you can run instead: - -```shell -KEEP_MODULES=1 ./ci/steps/release.sh -node ./release -``` +NOTE: On Linux, the currently running distro will become the minimum supported version. +In our GitHub Actions CI, we use CentOS 7 for maximum compatibility. +If you need your builds to support older distros, run the build commands +inside a Docker container with all the build requirements installed. ## Structure