小编Rou*_*tor的帖子

我们如何在gitlab-ci.yml中使用'variables'关键字?

我想variables:在这里使用Gitlab CI文档中记录的关键字:

来自:https://docs.gitlab.com/ce/ci/yaml/README.html

变量

此功能需要gitlab-runner版本等于或大于0.5.0.

GitLab CI允许您添加在构建环境中设置的.gitlab-ci.yml变量.变量存储在存储库中,用于存储非敏感项目配置,即.RAILS_ENV或DATABASE_URL.

variables:   
  DATABASE_URL: "postgres://postgres@postgres/my_database"
Run Code Online (Sandbox Code Playgroud)

这些变量稍后可用于所有已执行的命令和脚本.

YAML定义的变量也设置为所有创建的服务容器,从而允许对它们进行微调.

当我尝试使用它时,我的版本不会运行任何阶段,并且无论如何都标记为成功,这是一个糟糕的YAML的好兆头.我将gitlab-ci.yml内容粘贴到设置区域的LINT工具中,输出错误为:

状态:语法不正确

错误:变量作业:未知参数PACKAGE_NAME

我使用的YAML语法与文档相同,但是它不起作用.我无法找到任何与此相关的漏洞.以下是我当前的版本和我的gitlab-ci.yml的清理版本.

Gitlab版本:7.13.2 Omnibus

Gitlab Runner版本:0.5.2

gitlab-ci.yml(Sanitized)

types:
  - test
  - build

variables:
  PACKAGE_NAME: "awesome-django-app"
  PACKAGE_SUMMARY: "Awesome webapp backend."
  MAJOR_RELEASE: "1"
  MINOR_RELEASE: "0"
  PATCH_LEVEL: "0dev"
  DEV_DB_URL: "db"
  DEV_SERVER: "pydev.example.com"
  PROD_SERVER: "pyprod.example.com"
  TEST_SERVER: "pytest.example.com"

envtest:
  type: test
  script:
  - ". ./testbuild.sh"
  tags:
  - python2.7
  - postgres
  - linux
  except:
  - tags

buildrpm:
  type: build
  script:
  - mkdir -p …
Run Code Online (Sandbox Code Playgroud)

variables gitlab gitlab-ci

24
推荐指数
2
解决办法
3万
查看次数

如何从$ stateChangeStart访问UI-Router根状态的'resolve'属性?

我正在尝试在我的应用程序中实现用户身份验证和访问检查系统,但是我一直在遇到障碍.我想这次我有正确的方法,但我有最后一个障碍.

一点背景:我尝试将所有代码放入$ rootScope.on($ startChangeStart)并且它工作得很糟糕......但它确实有效.路线始终被重定向,但由于后端的验证检查,它显示第一个请求页面1/2秒,然后每次都显示重定向页面.因此,我尝试通过在$ startChangeStart函数的开头调用evt.preventDefault()来"暂停"页面加载,这起作用,但是尝试将用户放回到原始路由之后导致路由器中的无限循环.

因此,经过更多的研究和阅读大量的帖子后,我确定'resolve:'是进行auth检查的正确位置,以确保页面在发生时不加载,然后根据需要从$重定向用户startChangeStart.($ state和event总是在我尝试将它们注入解析函数时未定义)这似乎是获胜的组合.

我的问题:我对我的应用中的root状态有了决心:'main'

这是为了避免代码冗余,但我无法确定如何从$ stateChangeStart函数访问根状态的属性,从而确定解析结果.toState是子状态,而fromState是先前的状态或具有'^'路由的抽象状态...

我是否必须将解决方案放在每个子状态才能使用,或者是否有办法从此处访问根状态?

基本应用设置:

angular.module('App', ['ui.router', 'ui.bootstrap', 'ui.event', 'AngularGM', 'ngResource'])
.config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider){
    $urlRouterProvider
        .when('/home', '/')
        .when('', '/')
        .when('/sign-up/joe', '/sign-up')
        .otherwise('/');

    $stateProvider
        .state('main', {
            url: '',
            abstract: true,
            templateUrl: 'views/main.html',
            controller: 'MainCtrl',
            resolve: {
                checkAccess: ['accountService', function(accountService) {
                    accountService.checkAuth(function(){
                        accountService.checkAccess(function (access){
                            return access;
                        });
                    });
                }]
            }
        })
        .state('main.home', {
            url: '',
            abstract: true,
            templateUrl: 'views/home.html',
            controller: 'HomeCtrl'
        })
        .state('main.home.index', {
            url: '/',
            templateUrl: 'views/home/index.html'
        });


.run(['$rootScope', '$state', '$stateParams', 'accountService', function …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

18
推荐指数
1
解决办法
8828
查看次数

使用NodeJS和Restify重定向客户端

我正在为使用NodeJS,Restify和PassportJS进行身份验证的SPA构建REST后端.除了最后一步之外,一切都正常工作,即将客户端从后端/ login/facebook/callback重定向到应用程序的主页.

我在网上搜索过,发现了很多ExpressJS的答案,但对Node-Restify没什么用处.我已经设法获取了一些代码片段,这就是我现在正在尝试的内容:

app.get('/api/v1/login/facebook/cb', passport.authenticate('facebook', { scope: 'email' }), function(req, res) {
    req.session.user = req.user._id;
    res.header('Location', '/#/home');
    res.send();
});
Run Code Online (Sandbox Code Playgroud)

发送响应但不包括位置标题,并向客户端显示白屏.如何使用Node-Restify API进行正确的重定向?

node.js restify passport.js

14
推荐指数
2
解决办法
1万
查看次数

如何在Gitlab CI中建立手动阶段?

我似乎无法在版本8.9中的Gitlab CI中找到任何手动登台的文档.如何进行"部署测试"等手动阶段?

我希望Gitlab CI将一个成功的RPM部署到开发人员,然后在我审阅之后,推送到Test,然后从那里生成一个版本.目前Gitlab CI可以实现吗?

gitlab gitlab-ci

12
推荐指数
3
解决办法
1万
查看次数

如何从SaltStack公式实现'pillar.example'?

如果这个解释存在于某个地方,我花了3个月试图找到它,但失败了.我来自Puppet背景,但由于各种原因,我真的想尝试用Salt替换它.

我已经得到了一个基本设置,我可以编写自己的状态,看到它们没有任何问题.关于此的文档非常清楚.我被困在哪里试图实施社区盐配方.我可以使用它的基本设置包含公式,它们工作正常,但我无法弄清楚如何覆盖我的支柱数据的默认值.这似乎是Salt文档最薄弱的地方.

文档说明您应该检查pillar.example以了解如何配置公式.pillar.example清楚地给出了配置部分,但是更详细的文档或柱子.示例告诉您如何将其包含在您的支柱数据中.

在我的情况下,我正在尝试使用snmp-formula.我有一个基本的盐文件结构设置,您可以从我的文件根目录中看到:

file_roots:
  base:
  - /srv/salt/base
  - /srv/formulas/snmp-formula
Run Code Online (Sandbox Code Playgroud)

在基地内我有两个支柱:

base/
  top.sls
  common.sls
Run Code Online (Sandbox Code Playgroud)

top.sls非常简单:

base:
  '*':
    - common
Run Code Online (Sandbox Code Playgroud)

common.sls具有所有常见配置:

include:
  - snmp
  - snmp.conf
  - snmp.trap
  - snmp.conftrap

tcpdump:
  pkg.latest:
    - name: tcpdump

telnet:
  pkg.latest:
    - name: telnet

htop:
  pkg.latest:
    - name: htop

snmp:
  conf:
    location: 'Office'
    syscontact: 'Example.com Admin <admin@example.com>'
    logconnects: false
    # vacm com2sec's (map communities into security names)
    com2sec:
      - name: mynetwork
        source: 192.168.0.13/31
        community: public
    # vacm group's (map security names …
Run Code Online (Sandbox Code Playgroud)

salt-stack

4
推荐指数
1
解决办法
1292
查看次数