Git and GitHub

工作流

CI

在 Github Actions 出来之前,比较流行的开源 CI 服务分别是 CircleCI 以及 TravisCI。之前也有一些项目使用过这些第三方服务,但给人的体验都不是很好例如构建缓慢。特别是对于国内用户来说访问它们的资源实在是太慢了,并且它们自身的功能也存在一点缺失。

Github Actions

接下来让我们看看应用要如何接入 Github Actions。详细内容可见 https://github.com/tianheg/github-actions

API

https://api.github.com/

GitHub Usage

Show Diff

- var GITHUB_ISSUES_LINK = "https://api.github.com/repos/nelsontky/gh-pages-url-shortener-db/issues/";

- var GITHUB_ISSUES_LINK = "<https://api.github.com/repos/>${your name}/${your db repo}/issues/";

https://github.com/mayandev/gh-short-url#before-use

Problems

a. GitHub Action only Generate .nojekyll

problem https://github.com/tianheg/feed/runs/2588088608?check_suite_focus=true#step:6:34:

2021-05-14T23:53:50.5691148Z [INFO] copy /home/runner/work/feed/feed/public to /home/runner/actions_github_pages_1621036430543
2021-05-14T23:53:50.5744245Z cp: no such file or directory: /home/runner/work/feed/feed/public/*
2021-05-14T23:53:50.5748693Z cp: no such file or directory: /home/runner/work/feed/feed/public/.*
2021-05-14T23:53:50.5754401Z [INFO] delete excluded assets
2021-05-14T23:53:50.5804394Z rm: no paths given
2021-05-14T23:53:50.5808868Z [INFO] Created /home/runner/actions_github_pages_1621036430543/.nojekyll

[gh-pages (root-commit) e783e47] deploy: 3ccc59a4e70e26668e0189264e8357994c0680ef
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 .nojekyll

it’s abnormal, normal display:

[INFO] copy /home/runner/work/feed/feed/public to /home/runner/actions_github_pages_1621037030810
  cp: no such file or directory: /home/runner/work/feed/feed/public/.*
  [INFO] delete excluded assets
  rm: no paths given
  [INFO] Created /home/runner/actions_github_pages_1621037030810/.nojekyll
  [INFO] Created /home/runner/actions_github_pages_1621037030810/CNAME

[gh-pages (root-commit) 7fede38] deploy: 584bbf403bd475f9481986ed57bbc6953687ec31
  8 files changed, 6756 insertions(+)
  create mode 100644 .nojekyll
  create mode 100644 CNAME
  create mode 100644 cache.json
  create mode 100644 favicon.ico
  create mode 100644 feed.atom
  create mode 100644 index.html
  create mode 100644 index.js
  create mode 100644 styles.css

I suspect it’s because of the addition of static/CNAME and I created a new test repository for this purpose:

.github/workflows/update-feed.yaml
includes/before-head-end.html
static/CNAME
.gitignore
README.md
osmosfeed.yaml
package.json

However, it’s GitHub Action is running fine, generating all the files. I’m confused.

The last GitHub Action run for osmosfeed-demo only generated .nojekyll (Outdated)

b.

$ bash bootstrap.sh
Cloning into '/home/tianheg/.vim'...
fatal: unable to access 'https://github.com/carlhuda/janus.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
Could not clone the repository to /home/tianheg/.vim

This error means that Git cannot establish a secure connection to the server you’re trying to use. Your version of Git uses the GnuTLS library to set up TLS (encrypted) connections, and for some reason that setup process is failing.

This could be for a couple of reasons. One is that your server (which one you haven’t mentioned) is using an incompatible set of cipher suites or TLS versions, and there’s no encryption algorithms in common that can be chosen. It’s also possible that you have someone tampering with the connection via a MITM device.

The version of Git and GnuTLS you’re using should work just fine with most standard servers. Re-installing it won’t help. You can try upgrading to a newer version of Debian, or you can try building Git yourself against a version of libcurl using OpenSSL. You can also just switch to SSH-based remotes, which will avoid this incompatibility altogether.


ref:

  1. https://github.community/t/unable-to-push-to-repo-gnutls-handshake-failed/885/19

  2. https://askubuntu.com/a/1009764

c.

$ gh auth refresh -s read:public_key
Post "https://github.com/login/device/code": read tcp 192.168.43.2:51274->140.82.113.4:443: read: connection reset by peer