mirror of
https://github.com/coder/code-server.git
synced 2024-12-05 07:13:06 +08:00
4223cf6e2b
* refactor: rename ci -> build.yaml * feat: add build.yaml * feat: add node caching to platform jobs * trigger ci
162 lines
5.0 KiB
YAML
162 lines
5.0 KiB
YAML
name: Publish code-server
|
|
|
|
on:
|
|
# Shows the manual trigger in GitHub UI
|
|
# helpful as a back-up in case the GitHub Actions Workflow fails
|
|
workflow_dispatch:
|
|
|
|
release:
|
|
types: [released]
|
|
|
|
# Cancel in-progress runs for pull requests when developers push
|
|
# additional changes, and serialize builds in branches.
|
|
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
# NOTE: this job requires curl, jq and yarn
|
|
# All of them are included in ubuntu-latest.
|
|
npm:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code-server
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Get version
|
|
id: version
|
|
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
|
|
|
- name: Download artifact
|
|
uses: dawidd6/action-download-artifact@v2
|
|
id: download
|
|
with:
|
|
branch: release/v${{ steps.version.outputs.version }}
|
|
workflow: build.yaml
|
|
workflow_conclusion: completed
|
|
name: "npm-package"
|
|
path: release-npm-package
|
|
|
|
- name: Publish npm package and tag with "latest"
|
|
run: yarn publish:npm
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
NPM_ENVIRONMENT: "production"
|
|
|
|
homebrew:
|
|
needs: npm
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Ensure things are up to date
|
|
# Suggested by homebrew maintainers
|
|
# https://github.com/Homebrew/discussions/discussions/1532#discussioncomment-782633
|
|
- name: Set up Homebrew
|
|
id: set-up-homebrew
|
|
uses: Homebrew/actions/setup-homebrew@master
|
|
|
|
- name: Checkout code-server
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Configure git
|
|
run: |
|
|
git config --global user.name cdrci
|
|
git config --global user.email opensource@coder.com
|
|
|
|
- name: Bump code-server homebrew version
|
|
env:
|
|
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}}
|
|
run: ./ci/steps/brew-bump.sh
|
|
|
|
aur:
|
|
needs: npm
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
env:
|
|
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
|
steps:
|
|
# We need to checkout code-server so we can get the version
|
|
- name: Checkout code-server
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
path: "./code-server"
|
|
|
|
- name: Get code-server version
|
|
id: version
|
|
run: |
|
|
pushd code-server
|
|
echo "::set-output name=version::$(jq -r .version package.json)"
|
|
popd
|
|
|
|
- name: Checkout code-server-aur repo
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: "cdrci/code-server-aur"
|
|
token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
|
|
ref: "master"
|
|
|
|
- name: Configure git
|
|
run: |
|
|
git config --global user.name cdrci
|
|
git config --global user.email opensource@coder.com
|
|
|
|
- name: Validate package
|
|
uses: hapakaien/archlinux-package-action@v2
|
|
with:
|
|
pkgver: ${{ steps.version.outputs.version }}
|
|
updpkgsums: true
|
|
srcinfo: true
|
|
|
|
- name: Open PR
|
|
# We need to git push -u otherwise gh will prompt
|
|
# asking where to push the branch.
|
|
run: |
|
|
git checkout -b update-version-${{ steps.version.outputs.version }}
|
|
git add .
|
|
git commit -m "chore: updating version to ${{ steps.version.outputs.version }}"
|
|
git push -u origin $(git branch --show)
|
|
gh pr create --repo coder/code-server-aur --title "chore: bump version to ${{ steps.version.outputs.version }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR
|
|
docker:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout code-server
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get version
|
|
id: version
|
|
run: echo "::set-output name=version::$(jq -r .version package.json)"
|
|
|
|
- name: Download release artifacts
|
|
uses: robinraju/release-downloader@v1.5
|
|
with:
|
|
repository: "coder/code-server"
|
|
tag: v${{ steps.version.outputs.version }}
|
|
fileName: "*.deb"
|
|
out-file-path: "release-packages"
|
|
|
|
- name: Publish to Docker
|
|
run: yarn publish:docker
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|